diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40053d64..b7a362ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,6 +42,7 @@ jobs: run: | cd gulp yarn gulp translations.fullBuild + yarn gulp localConfig.findOrCreate cd .. yarn tslint diff --git a/.gitignore b/.gitignore index a0e08a62..cdade93f 100644 --- a/.gitignore +++ b/.gitignore @@ -46,7 +46,13 @@ res_built gulp/runnable-texturepacker.jar tmp_standalone_files +tmp_standalone_files_china +tmp_standalone_files_wegame # Local config config.local.js .DS_Store + +# Editor artifacts +*.*.swp +*.*.swo diff --git a/Dockerfile b/Dockerfile index 61d54684..b79cac20 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,7 @@ COPY translations ./translations COPY src/js ./src/js COPY res_raw ./res_raw COPY .git ./.git +COPY electron ./electron WORKDIR /shapez.io/gulp ENTRYPOINT ["yarn", "gulp"] diff --git a/README.md b/README.md index 85b5d26b..4a042cd9 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ This is the source code for shapez.io, an open source base building game inspired by Factorio. Your goal is to produce shapes by cutting, rotating, merging and painting parts of shapes. -- [Trello Board & Roadmap](https://trello.com/b/ISQncpJP/shapezio) -- [Free web version](https://shapez.io) -- [itch.io Page](https://tobspr.itch.io/shapezio) - [Steam Page](https://steam.shapez.io) - [Official Discord](https://discord.com/invite/HN7EVzV) <- _Highly recommended to join!_ +- [Trello Board & Roadmap](https://trello.com/b/ISQncpJP/shapezio) +- [itch.io Page](https://tobspr.itch.io/shapezio) +- [Free web version](https://shapez.io) ## Reporting issues, suggestions, feedback, bugs @@ -35,11 +35,11 @@ Your goal is to produce shapes by cutting, rotating, merging and painting parts You can use [Gitpod](https://www.gitpod.io/) (an Online Open Source VS Code-like IDE which is free for Open Source) for working on issues and making PRs to this project. With a single click it will start a workspace and automatically: -- clone the `shapez.io` repo. -- install all of the dependencies. -- start `gulp` in `gulp/` directory. +- clone the `shapez.io` repo. +- install all of the dependencies. +- start `gulp` in `gulp/` directory. -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/tobspr/shapez.io) ## Helping translate diff --git a/electron/index.js b/electron/index.js index 91ab8e9e..e7994050 100644 --- a/electron/index.js +++ b/electron/index.js @@ -1,11 +1,12 @@ /* eslint-disable quotes,no-undef */ -const { app, BrowserWindow, Menu, MenuItem, session } = require("electron"); +const { app, BrowserWindow, Menu, MenuItem, ipcMain, shell } = require("electron"); const path = require("path"); const url = require("url"); -const childProcess = require("child_process"); -const { ipcMain, shell } = require("electron"); const fs = require("fs"); +const steam = require("./steam"); +const asyncLock = require("async-lock"); + const isDev = process.argv.indexOf("--dev") >= 0; const isLocal = process.argv.indexOf("--local") >= 0; @@ -73,20 +74,8 @@ function createWindow() { win.on("closed", () => { console.log("Window closed"); win = null; - app.quit(); }); - function handleWindowBeforeunload(event) { - const confirmed = dialog.showMessageBox(remote.getCurrentWindow(), options) === 1; - if (confirmed) { - remote.getCurrentWindow().close(); - } else { - event.returnValue = false; - } - } - - win.on("", handleWindowBeforeunload); - if (isDev) { menu = new Menu(); @@ -152,7 +141,82 @@ ipcMain.on("exit-app", (event, flag) => { app.quit(); }); -function performFsJob(job) { +let renameCounter = 1; + +const fileLock = new asyncLock({ + timeout: 30000, + maxPending: 1000, +}); + +function niceFileName(filename) { + return filename.replace(storePath, "@"); +} + +async function writeFileSafe(filename, contents) { + ++renameCounter; + const prefix = "[ " + renameCounter + ":" + niceFileName(filename) + " ] "; + const transactionId = String(new Date().getTime()) + "." + renameCounter; + + if (fileLock.isBusy()) { + console.warn(prefix, "Concurrent write process on", filename); + } + + fileLock.acquire(filename, async () => { + console.log(prefix, "Starting write on", niceFileName(filename), "in transaction", transactionId); + + if (!fs.existsSync(filename)) { + // this one is easy + console.log(prefix, "Writing file instantly because it does not exist:", niceFileName(filename)); + await fs.promises.writeFile(filename, contents, { encoding: "utf8" }); + return; + } + + // first, write a temporary file (.tmp-XXX) + const tempName = filename + ".tmp-" + transactionId; + console.log(prefix, "Writing temporary file", niceFileName(tempName)); + await fs.promises.writeFile(tempName, contents, { encoding: "utf8" }); + + // now, rename the original file to (.backup-XXX) + const oldTemporaryName = filename + ".backup-" + transactionId; + console.log( + prefix, + "Renaming old file", + niceFileName(filename), + "to", + niceFileName(oldTemporaryName) + ); + await fs.promises.rename(filename, oldTemporaryName); + + // now, rename the temporary file (.tmp-XXX) to the target + console.log( + prefix, + "Renaming the temporary file", + niceFileName(tempName), + "to the original", + niceFileName(filename) + ); + await fs.promises.rename(tempName, filename); + + // we are done now, try to create a backup, but don't fail if the backup fails + try { + // check if there is an old backup file + const backupFileName = filename + ".backup"; + if (fs.existsSync(backupFileName)) { + console.log(prefix, "Deleting old backup file", niceFileName(backupFileName)); + // delete the old backup + await fs.promises.unlink(backupFileName); + } + + // rename the old file to the new backup file + console.log(prefix, "Moving", niceFileName(oldTemporaryName), "to the backup file location"); + await fs.promises.rename(oldTemporaryName, backupFileName); + } catch (ex) { + console.error(prefix, "Failed to switch backup files:", ex); + } + }); +} + +async function performFsJob(job) { const fname = path.join(storePath, job.filename); switch (job.type) { @@ -164,38 +228,35 @@ function performFsJob(job) { }; } - let contents = ""; try { - contents = fs.readFileSync(fname, { encoding: "utf8" }); + const data = await fs.promises.readFile(fname, { encoding: "utf8" }); + return { + success: true, + data, + }; } catch (ex) { return { error: ex, }; } - - return { - success: true, - data: contents, - }; } case "write": { try { - fs.writeFileSync(fname, job.contents); + await writeFileSafe(fname, job.contents); + return { + success: true, + data: job.contents, + }; } catch (ex) { return { error: ex, }; } - - return { - success: true, - data: job.contents, - }; } case "delete": { try { - fs.unlinkSync(fname); + await fs.promises.unlink(fname); } catch (ex) { return { error: ex, @@ -213,12 +274,10 @@ function performFsJob(job) { } } -ipcMain.on("fs-job", (event, arg) => { - const result = performFsJob(arg); +ipcMain.on("fs-job", async (event, arg) => { + const result = await performFsJob(arg); event.reply("fs-response", { id: arg.id, result }); }); -ipcMain.on("fs-sync-job", (event, arg) => { - const result = performFsJob(arg); - event.returnValue = result; -}); +steam.init(isDev); +steam.listen(); diff --git a/electron/package.json b/electron/package.json index c8d3a124..d21aff71 100644 --- a/electron/package.json +++ b/electron/package.json @@ -10,7 +10,12 @@ "start": "electron --disable-direct-composition --in-process-gpu ." }, "devDependencies": { - "electron": "10.1.3" + "electron": "10.4.3" }, - "dependencies": {} + "optionalDependencies": { + "shapez.io-private-artifacts": "github:tobspr/shapez.io-private-artifacts#abi-v82" + }, + "dependencies": { + "async-lock": "^1.2.8" + } } diff --git a/electron/steam.js b/electron/steam.js new file mode 100644 index 00000000..464b7924 --- /dev/null +++ b/electron/steam.js @@ -0,0 +1,110 @@ +const fs = require("fs"); +const path = require("path"); +const { ipcMain } = require("electron"); + +let greenworks = null; +let appId = null; +let initialized = false; + +try { + greenworks = require("shapez.io-private-artifacts/steam/greenworks"); + appId = parseInt(fs.readFileSync(path.join(__dirname, "steam_appid.txt"), "utf8")); +} catch (err) { + // greenworks is not installed + console.warn("Failed to load steam api:", err); +} + +function init(isDev) { + if (!greenworks) { + return; + } + + if (!isDev) { + if (greenworks.restartAppIfNecessary(appId)) { + console.log("Restarting ..."); + process.exit(0); + } + } + + if (!greenworks.init()) { + console.log("Failed to initialize greenworks"); + process.exit(1); + } + + initialized = true; +} + +function listen() { + ipcMain.handle("steam:is-initialized", isInitialized); + + if (!initialized) { + console.warn("Steam not initialized, won't be able to listen"); + return; + } + + if (!greenworks) { + console.warn("Greenworks not loaded, won't be able to listen"); + return; + } + + console.log("Adding listeners"); + + ipcMain.handle("steam:get-achievement-names", getAchievementNames); + ipcMain.handle("steam:activate-achievement", activateAchievement); + + function bufferToHex(buffer) { + return Array.from(new Uint8Array(buffer)) + .map(b => b.toString(16).padStart(2, "0")) + .join(""); + } + + ipcMain.handle("steam:get-ticket", (event, arg) => { + console.log("Requested steam ticket ..."); + return new Promise((resolve, reject) => { + greenworks.getAuthSessionTicket( + success => { + const ticketHex = bufferToHex(success.ticket); + resolve(ticketHex); + }, + error => { + console.error("Failed to get steam ticket:", error); + reject(error); + } + ); + }); + }); + + ipcMain.handle("steam:check-app-ownership", (event, appId) => { + return Promise.resolve(greenworks.isDLCInstalled(appId)); + }); +} + +function isInitialized(event) { + return Promise.resolve(initialized); +} + +function getAchievementNames(event) { + return new Promise((resolve, reject) => { + try { + const achievements = greenworks.getAchievementNames(); + resolve(achievements); + } catch (err) { + reject(err); + } + }); +} + +function activateAchievement(event, id) { + return new Promise((resolve, reject) => { + greenworks.activateAchievement( + id, + () => resolve(), + err => reject(err) + ); + }); +} + +module.exports = { + init, + listen, +}; diff --git a/electron/steam_appid.txt b/electron/steam_appid.txt index b3a09531..a8e9e809 100644 --- a/electron/steam_appid.txt +++ b/electron/steam_appid.txt @@ -1 +1 @@ -1134480 \ No newline at end of file +1318690 diff --git a/electron/yarn.lock b/electron/yarn.lock index fa92ec46..db2b6278 100644 --- a/electron/yarn.lock +++ b/electron/yarn.lock @@ -1,572 +1,582 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@electron/get@^1.0.1": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" - integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - progress "^2.0.3" - sanitize-filename "^1.6.2" - sumchecker "^3.0.1" - optionalDependencies: - global-agent "^2.0.2" - global-tunnel-ng "^2.7.1" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/node@^12.0.12": - version "12.12.62" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.62.tgz#733923d73669188d35950253dd18a21570085d2b" - integrity sha512-qAfo81CsD7yQIM9mVyh6B/U47li5g7cfpVQEDMfQeF8pSZVwzbhwU3crc0qG4DmpsebpJPR49AKOExQyJ05Cpg== - -boolean@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" - integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -concat-stream@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== - dependencies: - ms "2.1.2" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -electron@10.1.3: - version "10.1.3" - resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.3.tgz#7e276e373bf30078bd4cb1184850a91268dc0e6c" - integrity sha512-CR8LrlG47MdAp317SQ3vGYa2o2cIMdMSMPYH46OVitFLk35dwE9fn3VqvhUIXhCHYcNWIAPzMhkVHpkoFdKWuw== - dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" - extract-zip "^1.0.3" - -encodeurl@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -extract-zip@^1.0.3: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= - dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= - dependencies: - pend "~1.2.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -global-agent@^2.0.2: - version "2.1.12" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" - integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== - dependencies: - boolean "^3.0.1" - core-js "^3.6.5" - es6-error "^4.1.1" - matcher "^3.0.0" - roarr "^2.15.3" - semver "^7.3.2" - serialize-error "^7.0.1" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -globalthis@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" - integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== - dependencies: - define-properties "^1.1.3" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.6: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== - -graceful-fs@^4.2.0: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -lodash@^4.17.10: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -matcher@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" - integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== - dependencies: - escape-string-regexp "^4.0.0" - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -readable-stream@^2.2.2: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -roarr@^2.15.3: - version "2.15.4" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" - integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== - dependencies: - boolean "^3.0.1" - detect-node "^2.0.4" - globalthis "^1.0.1" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -sanitize-filename@^1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -serialize-error@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" - integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== - dependencies: - type-fest "^0.13.1" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -sumchecker@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== - dependencies: - debug "^4.1.0" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= - dependencies: - fd-slicer "~1.0.1" +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@electron/get@^1.0.1": + version "1.12.4" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab" + integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/node@^12.0.12": + version "12.20.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.5.tgz#4ca82a766f05c359fd6c77505007e5a272f4bb9b" + integrity sha512-5Oy7tYZnu3a4pnJ//d4yVvOImExl4Vtwf0D40iKUlU+XlUsyV9iyFWyCFlwy489b72FMAik/EFwRkNLjjOdSPg== + +async-lock@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.2.8.tgz#7b02bdfa2de603c0713acecd11184cf97bbc7c4c" + integrity sha512-G+26B2jc0Gw0EG/WN2M6IczuGepBsfR1+DtqLnyFSH4p2C668qkOCtEkGNVEaaNAVlYwEMazy1+/jnLxltBkIQ== + +boolean@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.2.tgz#df1baa18b6a2b0e70840475e1d93ec8fe75b2570" + integrity sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g== + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +core-js@^3.6.5: + version "3.9.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz#cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae" + integrity sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +electron@10.4.3: + version "10.4.3" + resolved "https://registry.yarnpkg.com/electron/-/electron-10.4.3.tgz#8d1c0f5e562d1b78dcec8074c0d59e58137fd508" + integrity sha512-qL8XZBII9KQHr1+YmVMj1AqyTR2I8/lxozvKEWoKKSkF8Hl6GzzxrLXRfISP7aDAvsJEyyhc6b2/42ME8hG5JA== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^12.0.12" + extract-zip "^1.0.3" + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +global-agent@^2.0.2: + version "2.1.12" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" + integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globalthis@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +lodash@^4.17.10: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +"shapez.io-private-artifacts@github:tobspr/shapez.io-private-artifacts#abi-v82": + version "0.1.0" + resolved "git+ssh://git@github.com/tobspr/shapez.io-private-artifacts.git#8aa3bfd3b569eb5695fc8a585a3f2ee3ed2db290" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" diff --git a/electron_wegame/.gitignore b/electron_wegame/.gitignore new file mode 100644 index 00000000..475a7c75 --- /dev/null +++ b/electron_wegame/.gitignore @@ -0,0 +1 @@ +wegame_sdk diff --git a/electron_wegame/README.md b/electron_wegame/README.md new file mode 100644 index 00000000..70736caf --- /dev/null +++ b/electron_wegame/README.md @@ -0,0 +1 @@ +To build, place the lib64 folder from the wegame sdk for electron 13 in `wegame_sdk` and run the `wegame.main.standalone` gulp task. diff --git a/electron_wegame/electron_wegame.code-workspace b/electron_wegame/electron_wegame.code-workspace new file mode 100644 index 00000000..fc9ab864 --- /dev/null +++ b/electron_wegame/electron_wegame.code-workspace @@ -0,0 +1,13 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.exclude": { + "**/node_modules": true, + "**/typedefs_gen": true + } + } +} \ No newline at end of file diff --git a/electron_wegame/favicon.icns b/electron_wegame/favicon.icns new file mode 100644 index 00000000..13d21f26 Binary files /dev/null and b/electron_wegame/favicon.icns differ diff --git a/electron_wegame/favicon.ico b/electron_wegame/favicon.ico new file mode 100644 index 00000000..54721ebf Binary files /dev/null and b/electron_wegame/favicon.ico differ diff --git a/electron_wegame/favicon.png b/electron_wegame/favicon.png new file mode 100644 index 00000000..44994cc9 Binary files /dev/null and b/electron_wegame/favicon.png differ diff --git a/electron_wegame/index.js b/electron_wegame/index.js new file mode 100644 index 00000000..23c277c4 --- /dev/null +++ b/electron_wegame/index.js @@ -0,0 +1,289 @@ +/* eslint-disable quotes,no-undef */ + +const { app, BrowserWindow, Menu, MenuItem, ipcMain, shell } = require("electron"); + +app.commandLine.appendSwitch("in-process-gpu"); + +const path = require("path"); +const url = require("url"); +const fs = require("fs"); +const wegame = require("./wegame"); +const asyncLock = require("async-lock"); + +const isDev = process.argv.indexOf("--dev") >= 0; +const isLocal = process.argv.indexOf("--local") >= 0; + +const roamingFolder = + process.env.APPDATA || + (process.platform == "darwin" + ? process.env.HOME + "/Library/Preferences" + : process.env.HOME + "/.local/share"); +let storePath = path.join(roamingFolder, "shapez.io", "saves"); + +if (!fs.existsSync(storePath)) { + // No try-catch by design + fs.mkdirSync(storePath, { recursive: true }); +} + +/** @type {BrowserWindow} */ +let win = null; +let menu = null; + +function createWindow() { + let faviconExtension = ".png"; + if (process.platform === "win32") { + faviconExtension = ".ico"; + } + + win = new BrowserWindow({ + width: 1280, + height: 800, + show: false, + backgroundColor: "#222428", + useContentSize: true, + minWidth: 800, + minHeight: 600, + title: "图形工厂", + transparent: false, + icon: path.join(__dirname, "favicon" + faviconExtension), + // fullscreen: true, + autoHideMenuBar: true, + webPreferences: { + nodeIntegration: true, + webSecurity: false, + contextIsolation: false, + }, + allowRunningInsecureContent: false, + }); + + if (isLocal) { + win.loadURL("http://localhost:3005"); + } else { + win.loadURL( + url.format({ + pathname: path.join(__dirname, "index.html"), + protocol: "file:", + slashes: true, + }) + ); + } + win.webContents.session.clearCache(() => null); + win.webContents.session.clearStorageData(); + + win.webContents.on("new-window", (event, pth) => { + event.preventDefault(); + shell.openExternal(pth); + }); + + win.on("closed", () => { + console.log("Window closed"); + win = null; + }); + + if (isDev) { + menu = new Menu(); + + const mainItem = new MenuItem({ + label: "Toggle Dev Tools", + click: () => win.webContents.toggleDevTools(), + accelerator: "F12", + }); + menu.append(mainItem); + + const reloadItem = new MenuItem({ + label: "Restart", + click: () => win.reload(), + accelerator: "F5", + }); + menu.append(reloadItem); + + const fullscreenItem = new MenuItem({ + label: "Fullscreen", + click: () => win.setFullScreen(!win.isFullScreen()), + accelerator: "F11", + }); + menu.append(fullscreenItem); + + Menu.setApplicationMenu(menu); + } else { + Menu.setApplicationMenu(null); + } + + win.once("ready-to-show", () => { + win.show(); + win.focus(); + }); +} + +if (!app.requestSingleInstanceLock()) { + app.exit(0); +} else { + app.on("second-instance", (event, commandLine, workingDirectory) => { + // Someone tried to run a second instance, we should focus + if (win) { + if (win.isMinimized()) { + win.restore(); + } + win.focus(); + } + }); +} + +app.on("ready", createWindow); + +app.on("window-all-closed", () => { + console.log("All windows closed"); + app.quit(); +}); + +ipcMain.on("set-fullscreen", (event, flag) => { + win.setFullScreen(flag); +}); + +ipcMain.on("exit-app", (event, flag) => { + win.close(); + app.quit(); +}); + +let renameCounter = 1; + +const fileLock = new asyncLock({ + timeout: 30000, + maxPending: 1000, +}); + +function niceFileName(filename) { + return filename.replace(storePath, "@"); +} + +async function writeFileSafe(filename, contents) { + ++renameCounter; + const prefix = "[ " + renameCounter + ":" + niceFileName(filename) + " ] "; + const transactionId = String(new Date().getTime()) + "." + renameCounter; + + if (fileLock.isBusy()) { + console.warn(prefix, "Concurrent write process on", filename); + } + + await fileLock.acquire(filename, async () => { + console.log(prefix, "Starting write on", niceFileName(filename), "in transaction", transactionId); + + if (!fs.existsSync(filename)) { + // this one is easy + console.log(prefix, "Writing file instantly because it does not exist:", niceFileName(filename)); + fs.writeFileSync(filename, contents, { encoding: "utf8" }); + return; + } + + // first, write a temporary file (.tmp-XXX) + const tempName = filename + ".tmp-" + transactionId; + console.log(prefix, "Writing temporary file", niceFileName(tempName)); + fs.writeFileSync(tempName, contents, { encoding: "utf8" }); + + // now, rename the original file to (.backup-XXX) + const oldTemporaryName = filename + ".backup-" + transactionId; + console.log( + prefix, + "Renaming old file", + niceFileName(filename), + "to", + niceFileName(oldTemporaryName) + ); + fs.renameSync(filename, oldTemporaryName); + + // now, rename the temporary file (.tmp-XXX) to the target + console.log( + prefix, + "Renaming the temporary file", + niceFileName(tempName), + "to the original", + niceFileName(filename) + ); + fs.renameSync(tempName, filename); + + // we are done now, try to create a backup, but don't fail if the backup fails + try { + // check if there is an old backup file + const backupFileName = filename + ".backup"; + if (fs.existsSync(backupFileName)) { + console.log(prefix, "Deleting old backup file", niceFileName(backupFileName)); + // delete the old backup + fs.unlinkSync(backupFileName); + } + + // rename the old file to the new backup file + console.log(prefix, "Moving", niceFileName(oldTemporaryName), "to the backup file location"); + fs.renameSync(oldTemporaryName, backupFileName); + } catch (ex) { + console.error(prefix, "Failed to switch backup files:", ex); + } + }); +} + +async function performFsJob(job) { + const fname = path.join(storePath, job.filename); + + switch (job.type) { + case "read": { + if (!fs.existsSync(fname)) { + return { + // Special FILE_NOT_FOUND error code + error: "file_not_found", + }; + } + + try { + const data = fs.readFileSync(fname, { encoding: "utf8" }); + return { + success: true, + data, + }; + } catch (ex) { + console.error(ex); + return { + error: ex, + }; + } + } + case "write": { + try { + writeFileSafe(fname, job.contents); + return { + success: true, + data: job.contents, + }; + } catch (ex) { + console.error(ex); + return { + error: ex, + }; + } + } + + case "delete": { + try { + fs.unlinkSync(fname); + } catch (ex) { + console.error(ex); + return { + error: ex, + }; + } + + return { + success: true, + data: null, + }; + } + + default: + throw new Error("Unkown fs job: " + job.type); + } +} + +ipcMain.on("fs-job", async (event, arg) => { + const result = await performFsJob(arg); + event.sender.send("fs-response", { id: arg.id, result }); +}); +wegame.init(isDev); +wegame.listen(); diff --git a/electron_wegame/package.json b/electron_wegame/package.json new file mode 100644 index 00000000..aba5bb6a --- /dev/null +++ b/electron_wegame/package.json @@ -0,0 +1,18 @@ +{ + "name": "electron", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true, + "scripts": { + "startDev": "electron --disable-direct-composition --in-process-gpu . --dev --local", + "startDevGpu": "electron --enable-gpu-rasterization --enable-accelerated-2d-canvas --num-raster-threads=8 --enable-zero-copy . --dev --local", + "start": "electron --disable-direct-composition --in-process-gpu ." + }, + "devDependencies": { + "electron": "^13.1.6" + }, + "dependencies": { + "async-lock": "^1.2.8" + } +} diff --git a/electron_wegame/wegame.js b/electron_wegame/wegame.js new file mode 100644 index 00000000..05a0e186 --- /dev/null +++ b/electron_wegame/wegame.js @@ -0,0 +1,63 @@ +const railsdk = require("./wegame_sdk/railsdk.js"); +const { dialog, app, remote, ipcMain } = require("electron"); + +function init(isDev) { + console.log("Step 1: wegame: init"); + + try { + console.log("Step 2: Calling need restart app"); + const need_restart = railsdk.RailNeedRestartAppForCheckingEnvironment( + 2001639, + [`--rail_render_pid=${process.pid}`] //,"--rail_debug_mode", + ); + console.log("Step 3: Needs restart =", need_restart); + if (need_restart) { + console.error("Step 4: Need restart"); + dialog.showErrorBox("加载RailSDK失败", "请先运行WeGame开发者版本"); + return; + } + } catch (err) { + console.error("Rail SDK error:", err); + dialog.showErrorBox("加载RailSDK失败", err); + return; + } + + console.log("Step 5: starting rail sdk"); + if (railsdk.RailInitialize() === false) { + console.error("RailInitialize() = false"); + dialog.showErrorBox("RailInitialize调用失败", "请先运行WeGame开发者版本"); + return; + } + + console.log("Initialize RailSDK success!"); + + railsdk.RailRegisterEvent(railsdk.RailEventID.kRailEventSystemStateChanged, event => { + console.log(event); + if (event.result === railsdk.RailResult.kSuccess) { + if ( + event.state === railsdk.RailSystemState.kSystemStatePlatformOffline || + event.state === railsdk.RailSystemState.kSystemStatePlatformExit || + event.state === railsdk.RailSystemState.kSystemStateGameExitByAntiAddiction + ) { + app.exit(); + } + } + }); +} + +function listen() { + console.log("wegame: listen"); + ipcMain.handle("profanity-check", async (event, data) => { + if (data.length === 0) { + return ""; + } + const result = railsdk.RailUtils.DirtyWordsFilter(data, true); + if (result.check_result.dirty_type !== 0 /** kRailDirtyWordsTypeNormalAllowWords */) { + return result.check_result.replace_string; + } + + return data; + }); +} + +module.exports = { init, listen }; diff --git a/electron_wegame/yarn.lock b/electron_wegame/yarn.lock new file mode 100644 index 00000000..69c595ea --- /dev/null +++ b/electron_wegame/yarn.lock @@ -0,0 +1,578 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@electron/get@^1.0.1": + version "1.12.4" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab" + integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/node@^14.6.2": + version "14.17.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.4.tgz#218712242446fc868d0e007af29a4408c7765bc0" + integrity sha512-8kQ3+wKGRNN0ghtEn7EGps/B8CzuBz1nXZEIGGLP2GnwbqYn4dbTs7k+VKLTq1HvZLRCIDtN3Snx1Ege8B7L5A== + +async-lock@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.2.8.tgz#7b02bdfa2de603c0713acecd11184cf97bbc7c4c" + integrity sha512-G+26B2jc0Gw0EG/WN2M6IczuGepBsfR1+DtqLnyFSH4p2C668qkOCtEkGNVEaaNAVlYwEMazy1+/jnLxltBkIQ== + +boolean@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz#e30f210a26b02458482a8cc353ab06f262a780c2" + integrity sha512-YN6UmV0FfLlBVvRvNPx3pz5W/mUoYB24J4WSXOKP/OOJpi+Oq6WYqPaNTHzjI0QzwWtnvEd5CGYyQPgp1jFxnw== + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +core-js@^3.6.5: + version "3.15.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.15.2.tgz#740660d2ff55ef34ce664d7e2455119c5bdd3d61" + integrity sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q== + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.1.0, debug@^4.1.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +electron@^13.1.6: + version "13.1.6" + resolved "https://registry.yarnpkg.com/electron/-/electron-13.1.6.tgz#6ecaf969255d62ce82cc0b5c948bf26e7dfb489b" + integrity sha512-XiB55/JTaQpDFQrD9pulYnOGwaWeMyRIub5ispvoE2bWBvM5zVMLptwMLb0m3KTMrfSkzhedZvOu7fwYvR7L7Q== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^14.6.2" + extract-zip "^1.0.3" + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +global-agent@^2.0.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" + integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globalthis@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +lodash@^4.17.10: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" diff --git a/gulp/bundle-loader.js b/gulp/bundle-loader.js index d8bb8c24..16db26fa 100644 --- a/gulp/bundle-loader.js +++ b/gulp/bundle-loader.js @@ -54,8 +54,11 @@ document.documentElement.appendChild(element); } - window.addEventListener("error", errorHandler); - window.addEventListener("unhandledrejection", errorHandler); + + if (window.location.host.indexOf("localhost") < 0) { + window.addEventListener("error", errorHandler); + window.addEventListener("unhandledrejection", errorHandler); + } function makeJsTag(src, integrity) { var script = document.createElement("script"); diff --git a/gulp/css.js b/gulp/css.js index 73a0a7cf..46e44247 100644 --- a/gulp/css.js +++ b/gulp/css.js @@ -21,7 +21,6 @@ function gulptasksCSS($, gulp, buildFolder, browserSync) { const plugins = [postcssAssetsPlugin(cachebust)]; if (prod) { plugins.unshift( - $.postcssUnprefix(), $.postcssPresetEnv({ browsers: ["> 0.1%"], }) @@ -62,7 +61,7 @@ function gulptasksCSS($, gulp, buildFolder, browserSync) { return gulp .src("../src/css/main.scss", { cwd: __dirname }) .pipe($.plumber()) - .pipe($.sass.sync().on("error", $.sass.logError)) + .pipe($.dartSass.sync().on("error", $.dartSass.logError)) .pipe( $.postcss([ $.postcssCriticalSplit({ @@ -95,7 +94,7 @@ function gulptasksCSS($, gulp, buildFolder, browserSync) { return gulp .src("../src/css/main.scss", { cwd: __dirname }) .pipe($.plumber()) - .pipe($.sass.sync().on("error", $.sass.logError)) + .pipe($.dartSass.sync().on("error", $.dartSass.logError)) .pipe( $.postcss([ $.postcssCriticalSplit({ diff --git a/gulp/gulpfile.js b/gulp/gulpfile.js index 7b0416ca..0f4f4185 100644 --- a/gulp/gulpfile.js +++ b/gulp/gulpfile.js @@ -50,6 +50,9 @@ css.gulptasksCSS($, gulp, buildFolder, browserSync); const sounds = require("./sounds"); sounds.gulptasksSounds($, gulp, buildFolder); +const localConfig = require("./local-config"); +localConfig.gulptasksLocalConfig($, gulp); + const js = require("./js"); js.gulptasksJS($, gulp, buildFolder, browserSync); @@ -136,7 +139,12 @@ gulp.task("main.webserver", () => { ); }); -function serve({ standalone }) { +/** + * + * @param {object} param0 + * @param {"web"|"standalone"|"china"|"wegame"} param0.version + */ +function serve({ version = "web" }) { browserSync.init({ server: buildFolder, port: 3005, @@ -160,7 +168,7 @@ function serve({ standalone }) { gulp.watch(["../src/**/*.scss"], gulp.series("css.dev")); // Watch .html files, those trigger a html rebuild - gulp.watch("../src/**/*.html", gulp.series(standalone ? "html.standalone-dev" : "html.dev")); + gulp.watch("../src/**/*.html", gulp.series(version === "web" ? "html.dev" : "html.standalone-dev")); // Watch sound files // gulp.watch(["../res_raw/sounds/**/*.mp3", "../res_raw/sounds/**/*.wav"], gulp.series("sounds.dev")); @@ -196,11 +204,26 @@ function serve({ standalone }) { return gulp.src(path).pipe(browserSync.reload({ stream: true })); }); - // Start the webpack watching server (Will never return) - if (standalone) { - gulp.series("js.standalone-dev.watch")(() => true); - } else { - gulp.series("js.dev.watch")(() => true); + switch (version) { + case "web": { + gulp.series("js.dev.watch")(() => true); + break; + } + case "standalone": { + gulp.series("js.standalone-dev.watch")(() => true); + break; + } + case "china": { + gulp.series("china.js.dev.watch")(() => true); + break; + } + case "wegame": { + gulp.series("wegame.js.dev.watch")(() => true); + break; + } + default: { + throw new Error("Unknown version " + version); + } } } @@ -221,6 +244,7 @@ gulp.task( gulp.series( "utils.cleanup", "utils.copyAdditionalBuildFiles", + "localConfig.findOrCreate", "imgres.buildAtlas", "imgres.atlasToJson", "imgres.atlas", @@ -238,6 +262,7 @@ gulp.task( "build.standalone.dev", gulp.series( "utils.cleanup", + "localConfig.findOrCreate", "imgres.buildAtlas", "imgres.atlasToJson", "imgres.atlas", @@ -284,30 +309,28 @@ gulp.task( ); // Builds everything (standalone-prod) -gulp.task( - "step.standalone-prod.code", - gulp.series("sounds.fullbuildHQ", "translations.fullBuild", "js.standalone-prod") -); -gulp.task("step.standalone-prod.mainbuild", gulp.parallel("step.baseResources", "step.standalone-prod.code")); -gulp.task( - "step.standalone-prod.all", - gulp.series("step.standalone-prod.mainbuild", "css.prod-standalone", "html.standalone-prod") -); -gulp.task( - "build.standalone-prod", - gulp.series("utils.cleanup", "step.standalone-prod.all", "step.postbuild") -); -// OS X build and release upload -gulp.task( - "build.darwin64-prod", - gulp.series( - "build.standalone-prod", - "standalone.prepare", - "standalone.package.prod.darwin64", - "standalone.uploadRelease.darwin64" - ) -); +for (const prefix of ["", "china.", "wegame."]) { + gulp.task( + prefix + "step.standalone-prod.code", + gulp.series("sounds.fullbuildHQ", "translations.fullBuild", prefix + "js.standalone-prod") + ); + + gulp.task( + prefix + "step.standalone-prod.mainbuild", + gulp.parallel("step.baseResources", prefix + "step.standalone-prod.code") + ); + + gulp.task( + prefix + "step.standalone-prod.all", + gulp.series(prefix + "step.standalone-prod.mainbuild", "css.prod-standalone", "html.standalone-prod") + ); + + gulp.task( + prefix + "build.standalone-prod", + gulp.series("utils.cleanup", prefix + "step.standalone-prod.all", "step.postbuild") + ); +} // Deploying! gulp.task( @@ -320,16 +343,45 @@ gulp.task( ); gulp.task("main.deploy.prod", gulp.series("utils.requireCleanWorkingTree", "build.prod", "ftp.upload.prod")); gulp.task("main.deploy.all", gulp.series("main.deploy.staging", "main.deploy.prod")); -gulp.task("main.standalone", gulp.series("build.standalone-prod", "standalone.package.prod")); + +// steam +gulp.task("regular.main.standalone", gulp.series("build.standalone-prod", "standalone.package.prod")); + +// china +gulp.task( + "china.main.standalone", + gulp.series("china.build.standalone-prod", "china.standalone.package.prod") +); + +// wegame +gulp.task( + "wegame.main.standalone", + gulp.series("wegame.build.standalone-prod", "wegame.standalone.package.prod") +); + +// all (except wegame) +gulp.task("standalone.steam", gulp.series("regular.main.standalone", "china.main.standalone")); +gulp.task( + "standalone.all", + gulp.series("regular.main.standalone", "china.main.standalone", "wegame.main.standalone") +); // Live-development gulp.task( "main.serveDev", - gulp.series("build.dev", () => serve({ standalone: false })) + gulp.series("build.dev", () => serve({ version: "web" })) ); gulp.task( "main.serveStandalone", - gulp.series("build.standalone.dev", () => serve({ standalone: true })) + gulp.series("build.standalone.dev", () => serve({ version: "standalone" })) +); +gulp.task( + "china.main.serveDev", + gulp.series("build.dev", () => serve({ version: "china" })) +); +gulp.task( + "wegame.main.serveDev", + gulp.series("build.dev", () => serve({ version: "wegame" })) ); gulp.task("default", gulp.series("main.serveDev")); diff --git a/gulp/js.js b/gulp/js.js index 28c037bd..93dab464 100644 --- a/gulp/js.js +++ b/gulp/js.js @@ -6,7 +6,6 @@ function requireUncached(module) { } function gulptasksJS($, gulp, buildFolder, browserSync) { - //// DEV gulp.task("js.dev.watch", () => { @@ -30,6 +29,66 @@ function gulptasksJS($, gulp, buildFolder, browserSync) { .pipe(gulp.dest(buildFolder)); }); + //// DEV CHINA + + gulp.task("china.js.dev.watch", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.config.js")({ + watch: true, + chineseVersion: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)) + .pipe(browserSync.stream()); + }); + + gulp.task("china.js.dev", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.config.js")({ + chineseVersion: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); + + //// DEV WEGAME + + gulp.task("wegame.js.dev.watch", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.config.js")({ + watch: true, + wegameVersion: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)) + .pipe(browserSync.stream()); + }); + + gulp.task("wegame.js.dev", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.config.js")({ + wegameVersion: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); + //// STAGING gulp.task("js.staging.transpiled", () => { @@ -162,6 +221,40 @@ function gulptasksJS($, gulp, buildFolder, browserSync) { ) .pipe(gulp.dest(buildFolder)); }); + + gulp.task("china.js.standalone-prod", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.production.config.js")({ + enableAssert: false, + environment: "prod", + es6: true, + standalone: true, + chineseVersion: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); + + gulp.task("wegame.js.standalone-prod", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.production.config.js")({ + enableAssert: false, + environment: "prod", + es6: false, + standalone: true, + wegameVersion: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); } module.exports = { diff --git a/gulp/local-config.js b/gulp/local-config.js new file mode 100644 index 00000000..108749e0 --- /dev/null +++ b/gulp/local-config.js @@ -0,0 +1,18 @@ +const path = require("path"); +const fs = require("fs"); +const fse = require("fs-extra"); + +const configTemplatePath = path.join(__dirname, "../src/js/core/config.local.template.js"); +const configPath = path.join(__dirname, "../src/js/core/config.local.js"); + +function gulptasksLocalConfig($, gulp) { + gulp.task("localConfig.findOrCreate", cb => { + if (!fs.existsSync(configPath)) { + fse.copySync(configTemplatePath, configPath); + } + + cb(); + }); +} + +module.exports = { gulptasksLocalConfig }; diff --git a/gulp/package.json b/gulp/package.json index 49118c32..2a17b4fd 100644 --- a/gulp/package.json +++ b/gulp/package.json @@ -34,6 +34,7 @@ "fastdom": "^1.0.9", "flatted": "^2.0.1", "fs-extra": "^8.1.0", + "gifsicle": "^5.2.0", "gulp-audiosprite": "^1.1.0", "howler": "^2.1.2", "html-loader": "^0.5.5", @@ -42,6 +43,7 @@ "markdown-loader": "^5.1.0", "node-sri": "^1.1.1", "phonegap-plugin-mobile-accessibility": "^1.0.5", + "postcss": ">=5.0.0", "promise-polyfill": "^8.1.0", "query-string": "^6.8.1", "rusha": "^0.8.13", @@ -60,7 +62,8 @@ "webpack-plugin-replace": "^1.1.1", "webpack-strip-block": "^0.2.0", "whatwg-fetch": "^3.0.0", - "worker-loader": "^2.0.0" + "worker-loader": "^2.0.0", + "yaml": "^1.10.0" }, "devDependencies": { "autoprefixer": "^9.4.3", @@ -76,6 +79,7 @@ "gulp-cache": "^1.1.3", "gulp-cached": "^1.1.1", "gulp-clean": "^0.4.0", + "gulp-dart-sass": "^1.0.2", "gulp-dom": "^1.0.0", "gulp-flatten": "^0.4.0", "gulp-fluent-ffmpeg": "^2.0.0", @@ -89,7 +93,6 @@ "gulp-pngquant": "^1.0.13", "gulp-postcss": "^8.0.0", "gulp-rename": "^2.0.0", - "gulp-sass": "^4.1.0", "gulp-sass-lint": "^1.4.0", "gulp-sftp": "git+https://git@github.com/webksde/gulp-sftp", "gulp-terser": "^1.2.0", diff --git a/gulp/standalone.js b/gulp/standalone.js index 8d247672..81b41929 100644 --- a/gulp/standalone.js +++ b/gulp/standalone.js @@ -1,5 +1,6 @@ require("colors"); const packager = require("electron-packager"); +const pj = require("../electron/package.json"); const path = require("path"); const { getVersion } = require("./buildutils"); const fs = require("fs"); @@ -8,228 +9,210 @@ const buildutils = require("./buildutils"); const execSync = require("child_process").execSync; function gulptasksStandalone($, gulp) { - const electronBaseDir = path.join(__dirname, "..", "electron"); + const targets = [ + { + tempDestDir: path.join(__dirname, "..", "tmp_standalone_files"), + suffix: "", + taskPrefix: "", + electronBaseDir: path.join(__dirname, "..", "electron"), + steam: true, + }, + { + tempDestDir: path.join(__dirname, "..", "tmp_standalone_files_china"), + suffix: "china", + taskPrefix: "china.", + electronBaseDir: path.join(__dirname, "..", "electron"), + steam: true, + }, + { + tempDestDir: path.join(__dirname, "..", "tmp_standalone_files_wegame"), + suffix: "wegame", + taskPrefix: "wegame.", + electronBaseDir: path.join(__dirname, "..", "electron_wegame"), + steam: false, + }, + ]; - const tempDestDir = path.join(__dirname, "..", "tmp_standalone_files"); - const tempDestBuildDir = path.join(tempDestDir, "built"); + for (const { tempDestDir, suffix, taskPrefix, electronBaseDir, steam } of targets) { + const tempDestBuildDir = path.join(tempDestDir, "built"); - gulp.task("standalone.prepare.cleanup", () => { - return gulp.src(tempDestDir, { read: false, allowEmpty: true }).pipe($.clean({ force: true })); - }); + gulp.task(taskPrefix + "standalone.prepare.cleanup", () => { + return gulp.src(tempDestDir, { read: false, allowEmpty: true }).pipe($.clean({ force: true })); + }); - gulp.task("standalone.prepare.copyPrefab", () => { - // const requiredFiles = $.glob.sync("../electron/"); - const requiredFiles = [ - path.join(electronBaseDir, "lib", "**", "*.node"), - path.join(electronBaseDir, "node_modules", "**", "*.*"), - path.join(electronBaseDir, "node_modules", "**", ".*"), - path.join(electronBaseDir, "favicon*"), + gulp.task(taskPrefix + "standalone.prepare.copyPrefab", () => { + const requiredFiles = [ + path.join(electronBaseDir, "node_modules", "**", "*.*"), + path.join(electronBaseDir, "node_modules", "**", ".*"), + path.join(electronBaseDir, "wegame_sdk", "**", "*.*"), + path.join(electronBaseDir, "wegame_sdk", "**", ".*"), + path.join(electronBaseDir, "favicon*"), - // fails on platforms which support symlinks - // https://github.com/gulpjs/gulp/issues/1427 - // path.join(electronBaseDir, "node_modules", "**", "*"), - ]; - return gulp.src(requiredFiles, { base: electronBaseDir }).pipe(gulp.dest(tempDestBuildDir)); - }); + // fails on platforms which support symlinks + // https://github.com/gulpjs/gulp/issues/1427 + // path.join(electronBaseDir, "node_modules", "**", "*"), + ]; + if (steam) { + requiredFiles.push(path.join(electronBaseDir, "steam_appid.txt")); + } + return gulp.src(requiredFiles, { base: electronBaseDir }).pipe(gulp.dest(tempDestBuildDir)); + }); - gulp.task("standalone.prepare.writePackageJson", cb => { - fs.writeFileSync( - path.join(tempDestBuildDir, "package.json"), - JSON.stringify( + gulp.task(taskPrefix + "standalone.prepare.writePackageJson", cb => { + const packageJsonString = JSON.stringify( { - devDependencies: { - electron: "6.1.12", + scripts: { + start: pj.scripts.start, }, + devDependencies: pj.devDependencies, + dependencies: pj.dependencies, + optionalDependencies: pj.optionalDependencies, }, null, 4 + ); + + fs.writeFileSync(path.join(tempDestBuildDir, "package.json"), packageJsonString); + + cb(); + }); + + gulp.task(taskPrefix + "standalone.prepareVDF", cb => { + if (!steam) { + cb(); + return; + } + + const hash = buildutils.getRevision(); + + const steampipeDir = path.join(__dirname, "steampipe", "scripts"); + const templateContents = fs + .readFileSync(path.join(steampipeDir, "app.vdf.template"), { encoding: "utf-8" }) + .toString(); + + const convertedContents = templateContents.replace("$DESC$", "Commit " + hash); + fs.writeFileSync(path.join(steampipeDir, "app.vdf"), convertedContents); + + cb(); + }); + + gulp.task(taskPrefix + "standalone.prepare.minifyCode", () => { + return gulp.src(path.join(electronBaseDir, "*.js")).pipe(gulp.dest(tempDestBuildDir)); + }); + + gulp.task(taskPrefix + "standalone.prepare.copyGamefiles", () => { + return gulp.src("../build/**/*.*", { base: "../build" }).pipe(gulp.dest(tempDestBuildDir)); + }); + + gulp.task(taskPrefix + "standalone.killRunningInstances", cb => { + try { + execSync("taskkill /F /IM shapezio.exe"); + } catch (ex) { + console.warn("Failed to kill running instances, maybe none are up."); + } + cb(); + }); + + gulp.task( + taskPrefix + "standalone.prepare", + gulp.series( + taskPrefix + "standalone.killRunningInstances", + taskPrefix + "standalone.prepare.cleanup", + taskPrefix + "standalone.prepare.copyPrefab", + taskPrefix + "standalone.prepare.writePackageJson", + taskPrefix + "standalone.prepare.minifyCode", + taskPrefix + "standalone.prepare.copyGamefiles" ) ); - cb(); - }); - gulp.task("standalone.prepareVDF", cb => { - const hash = buildutils.getRevision(); + /** + * + * @param {'win32'|'linux'} platform + * @param {'x64'|'ia32'} arch + * @param {function():void} cb + */ + function packageStandalone(platform, arch, cb) { + const tomlFile = fs.readFileSync(path.join(__dirname, ".itch.toml")); + const privateArtifactsPath = "node_modules/shapez.io-private-artifacts"; - const steampipeDir = path.join(__dirname, "steampipe", "scripts"); - const templateContents = fs - .readFileSync(path.join(steampipeDir, "app.vdf.template"), { encoding: "utf-8" }) - .toString(); - - const convertedContents = templateContents.replace("$DESC$", "Commit " + hash); - fs.writeFileSync(path.join(steampipeDir, "app.vdf"), convertedContents); - - cb(); - }); - - gulp.task("standalone.prepare.minifyCode", () => { - return gulp.src(path.join(electronBaseDir, "*.js")).pipe(gulp.dest(tempDestBuildDir)); - }); - - gulp.task("standalone.prepare.copyGamefiles", () => { - return gulp.src("../build/**/*.*", { base: "../build" }).pipe(gulp.dest(tempDestBuildDir)); - }); - - gulp.task("standalone.killRunningInstances", cb => { - try { - execSync("taskkill /F /IM shapezio.exe"); - } catch (ex) { - console.warn("Failed to kill running instances, maybe none are up."); - } - cb(); - }); - - gulp.task( - "standalone.prepare", - gulp.series( - "standalone.killRunningInstances", - "standalone.prepare.cleanup", - "standalone.prepare.copyPrefab", - "standalone.prepare.writePackageJson", - "standalone.prepare.minifyCode", - "standalone.prepare.copyGamefiles" - ) - ); - - /** - * - * @param {'win32'|'linux'|'darwin'} platform - * @param {'x64'|'ia32'} arch - * @param {function():void} cb - * @param {boolean=} isRelease - */ - function packageStandalone(platform, arch, cb, isRelease = true) { - const tomlFile = fs.readFileSync(path.join(__dirname, ".itch.toml")); - - packager({ - dir: tempDestBuildDir, - appCopyright: "Tobias Springer", - appVersion: getVersion(), - buildVersion: "1.0.0", - arch, - platform, - asar: true, - executableName: "shapezio", - icon: path.join(electronBaseDir, "favicon"), - name: "shapez.io-standalone", - out: tempDestDir, - overwrite: true, - appBundleId: "io.shapez.standalone", - appCategoryType: "public.app-category.games", - ...(isRelease && - platform === "darwin" && { - osxSign: { - "identity": process.env.SHAPEZ_CLI_APPLE_CERT_NAME, - "hardened-runtime": true, - "hardenedRuntime": true, - "entitlements": "entitlements.plist", - "entitlements-inherit": "entitlements.plist", - "signature-flags": "library", - }, - osxNotarize: { - appleId: process.env.SHAPEZ_CLI_APPLE_ID, - appleIdPassword: "@keychain:SHAPEZ_CLI_APPLE_ID", - }, - }), - }).then( - appPaths => { - console.log("Packages created:", appPaths); - appPaths.forEach(appPath => { - if (!fs.existsSync(appPath)) { - console.error("Bad app path gotten:", appPath); - return; - } - - fs.writeFileSync( - path.join(appPath, "LICENSE"), - fs.readFileSync(path.join(__dirname, "..", "LICENSE")) - ); - - fs.writeFileSync(path.join(appPath, ".itch.toml"), tomlFile); - - if (platform === "linux") { - fs.writeFileSync( - path.join(appPath, "play.sh"), - '#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n' - ); - fs.chmodSync(path.join(appPath, "play.sh"), 0o775); - } - - if (process.platform === "win32" && platform === "darwin") { - console.warn( - "Cross-building for macOS on Windows: dereferencing symlinks.\n".red + - "This will nearly double app size and make code signature invalid. Sorry!\n" - .red.bold + - "For more information, see " + - "https://github.com/electron/electron-packager/issues/71".underline - ); - - // Clear up framework folders - fs.writeFileSync( - path.join(appPath, "play.sh"), - '#!/usr/bin/env bash\n./shapez.io-standalone.app/Contents/MacOS/shapezio --no-sandbox "$@"\n' - ); - fs.chmodSync(path.join(appPath, "play.sh"), 0o775); - fs.chmodSync( - path.join(appPath, "shapez.io-standalone.app", "Contents", "MacOS", "shapezio"), - 0o775 - ); - - const finalPath = path.join(appPath, "shapez.io-standalone.app"); - - const frameworksDir = path.join(finalPath, "Contents", "Frameworks"); - const frameworkFolders = fs - .readdirSync(frameworksDir) - .filter(fname => fname.endsWith(".framework")); - - for (let i = 0; i < frameworkFolders.length; ++i) { - const folderName = frameworkFolders[i]; - const frameworkFolder = path.join(frameworksDir, folderName); - console.log(" -> ", frameworkFolder); - - const filesToDelete = fs - .readdirSync(frameworkFolder) - .filter(fname => fname.toLowerCase() !== "versions"); - filesToDelete.forEach(fname => { - console.log(" -> Deleting", fname); - fs.unlinkSync(path.join(frameworkFolder, fname)); - }); - - const frameworkSourceDir = path.join(frameworkFolder, "Versions", "A"); - fse.copySync(frameworkSourceDir, frameworkFolder); - } - } - }); - - cb(); - }, - err => { - console.error("Packaging error:", err); - cb(); + let asar = steam; + if (steam && fs.existsSync(path.join(tempDestBuildDir, privateArtifactsPath))) { + // @ts-expect-error + asar = { unpackDir: privateArtifactsPath }; } + + packager({ + dir: tempDestBuildDir, + appCopyright: "Tobias Springer", + appVersion: getVersion(), + buildVersion: "1.0.0", + arch, + platform, + asar: asar, + executableName: "shapezio", + icon: path.join(electronBaseDir, "favicon"), + name: "shapez.io-standalone" + suffix, + out: tempDestDir, + overwrite: true, + appBundleId: "io.shapez.standalone", + appCategoryType: "public.app-category.games", + }).then( + appPaths => { + console.log("Packages created:", appPaths); + appPaths.forEach(appPath => { + if (!fs.existsSync(appPath)) { + console.error("Bad app path gotten:", appPath); + return; + } + + if (steam) { + fs.writeFileSync( + path.join(appPath, "LICENSE"), + fs.readFileSync(path.join(__dirname, "..", "LICENSE")) + ); + + fse.copySync( + path.join(tempDestBuildDir, "steam_appid.txt"), + path.join(appPath, "steam_appid.txt") + ); + + fs.writeFileSync(path.join(appPath, ".itch.toml"), tomlFile); + + if (platform === "linux") { + fs.writeFileSync( + path.join(appPath, "play.sh"), + '#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n' + ); + fs.chmodSync(path.join(appPath, "play.sh"), 0o775); + } + } + }); + + cb(); + }, + err => { + console.error("Packaging error:", err); + cb(); + } + ); + } + + gulp.task(taskPrefix + "standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb)); + gulp.task(taskPrefix + "standalone.package.prod.linux64", cb => + packageStandalone("linux", "x64", cb) + ); + + gulp.task( + taskPrefix + "standalone.package.prod", + gulp.series( + taskPrefix + "standalone.prepare", + gulp.parallel( + taskPrefix + "standalone.package.prod.win64", + taskPrefix + "standalone.package.prod.linux64" + ) + ) ); } - - gulp.task("standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb)); - gulp.task("standalone.package.prod.win32", cb => packageStandalone("win32", "ia32", cb)); - gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb)); - gulp.task("standalone.package.prod.linux32", cb => packageStandalone("linux", "ia32", cb)); - gulp.task("standalone.package.prod.darwin64", cb => packageStandalone("darwin", "x64", cb)); - gulp.task("standalone.package.prod.darwin64.unsigned", cb => - packageStandalone("darwin", "x64", cb, false) - ); - - gulp.task( - "standalone.package.prod", - gulp.series( - "standalone.prepare", - gulp.parallel( - "standalone.package.prod.win64", - "standalone.package.prod.linux64", - "standalone.package.prod.darwin64" - ) - ) - ); } module.exports = { gulptasksStandalone }; diff --git a/gulp/steampipe/scripts/app.vdf.template b/gulp/steampipe/scripts/app.vdf.template index a13a9db3..5359acfe 100644 --- a/gulp/steampipe/scripts/app.vdf.template +++ b/gulp/steampipe/scripts/app.vdf.template @@ -10,6 +10,8 @@ "depots" { "1318691" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\windows.vdf" + "1318694" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\china-windows.vdf" "1318692" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\linux.vdf" + "1318695" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\china-linux.vdf" } } diff --git a/gulp/steampipe/scripts/china-linux.vdf b/gulp/steampipe/scripts/china-linux.vdf new file mode 100644 index 00000000..3906312b --- /dev/null +++ b/gulp/steampipe/scripts/china-linux.vdf @@ -0,0 +1,12 @@ +"DepotBuildConfig" +{ + "DepotID" "1318695" + "contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files_china\shapez.io-standalonechina-linux-x64" + "FileMapping" + { + "LocalPath" "*" + "DepotPath" "." + "recursive" "1" + } + "FileExclusion" "*.pdb" +} \ No newline at end of file diff --git a/gulp/steampipe/scripts/china-windows.vdf b/gulp/steampipe/scripts/china-windows.vdf new file mode 100644 index 00000000..3a098cbc --- /dev/null +++ b/gulp/steampipe/scripts/china-windows.vdf @@ -0,0 +1,12 @@ +"DepotBuildConfig" +{ + "DepotID" "1318694" + "contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files_china\shapez.io-standalonechina-win32-x64" + "FileMapping" + { + "LocalPath" "*" + "DepotPath" "." + "recursive" "1" + } + "FileExclusion" "*.pdb" +} \ No newline at end of file diff --git a/gulp/steampipe/upload.bat b/gulp/steampipe/upload.bat index de461069..86dcf926 100644 --- a/gulp/steampipe/upload.bat +++ b/gulp/steampipe/upload.bat @@ -1,4 +1,4 @@ @echo off -cmd /c gulp standalone.prepareVDF +cmd /c yarn gulp standalone.prepareVDF steamcmd +login %STEAM_UPLOAD_SHAPEZ_ID% %STEAM_UPLOAD_SHAPEZ_USER% +run_app_build %cd%/scripts/app.vdf +quit start https://partner.steamgames.com/apps/builds/1318690 diff --git a/gulp/translations.js b/gulp/translations.js index 2d0791b5..88afa989 100644 --- a/gulp/translations.js +++ b/gulp/translations.js @@ -25,6 +25,7 @@ function gulptasksTranslations($, gulp) { files .filter(name => name.endsWith(".yaml")) .forEach(fname => { + console.log("Loading", fname); const languageName = fname.replace(".yaml", ""); const abspath = path.join(translationsSourceDir, fname); @@ -40,39 +41,13 @@ function gulptasksTranslations($, gulp) { ${storePage.intro.replace(/\n/gi, "\n\n")} - [h2]${storePage.title_advantages}[/h2] + [h2]${storePage.what_others_say}[/h2] [list] - ${storePage.advantages - .map(x => "[*] " + x.replace(//, "[b]").replace(/<\/b>/, "[/b]")) - .join("\n")} + [*] [i]${storePage.nothernlion_comment}[/i] [b]- Northernlion, YouTube[/b] + [*] [i]${storePage.notch_comment}[/i] [b]- Notch[/b] + [*] [i]${storePage.steam_review_comment}[/i] [b]- Steam User[/b] [/list] - - [h2]${storePage.title_future}[/h2] - - [list] - ${storePage.planned - .map(x => "[*] " + x.replace(//, "[b]").replace(/<\/b>/, "[/b]")) - .join("\n")} - [/list] - - [h2]${storePage.title_open_source}[/h2] - - ${storePage.text_open_source.replace(/\n/gi, "\n\n")} - - [h2]${storePage.title_links}[/h2] - - [list] - [*] [url=https://discord.com/invite/HN7EVzV]${storePage.links.discord}[/url] - [*] [url=https://trello.com/b/ISQncpJP/shapezio]${storePage.links.roadmap}[/url] - [*] [url=https://www.reddit.com/r/shapezio]${storePage.links.subreddit}[/url] - [*] [url=https://github.com/tobspr/shapez.io]${storePage.links.source_code}[/url] - [*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]${ - storePage.links.translate - }[/url] - [/list] - - `; fs.writeFileSync(destpath, trim(content.replace(/(\n[ \t\r]*)/gi, "\n")), { diff --git a/gulp/webpack.config.js b/gulp/webpack.config.js index 6e1d7388..14987cfa 100644 --- a/gulp/webpack.config.js +++ b/gulp/webpack.config.js @@ -6,7 +6,7 @@ const { getRevision, getVersion, getAllResourceImages } = require("./buildutils" const lzString = require("lz-string"); const CircularDependencyPlugin = require("circular-dependency-plugin"); -module.exports = ({ watch = false, standalone = false }) => { +module.exports = ({ watch = false, standalone = false, chineseVersion = false, wegameVersion = false }) => { return { mode: "development", devtool: "cheap-source-map", @@ -34,6 +34,8 @@ module.exports = ({ watch = false, standalone = false }) => { G_TRACKING_ENDPOINT: JSON.stringify( lzString.compressToEncodedURIComponent("http://localhost:10005/v1") ), + G_CHINA_VERSION: JSON.stringify(chineseVersion), + G_WEGAME_VERSION: JSON.stringify(wegameVersion), G_IS_DEV: "true", G_IS_RELEASE: "false", G_IS_MOBILE_APP: "false", diff --git a/gulp/webpack.production.config.js b/gulp/webpack.production.config.js index c26bca68..fd7551e0 100644 --- a/gulp/webpack.production.config.js +++ b/gulp/webpack.production.config.js @@ -16,12 +16,17 @@ module.exports = ({ standalone = false, isBrowser = true, mobileApp = false, + chineseVersion = false, + wegameVersion = false, }) => { const globalDefs = { assert: enableAssert ? "window.assert" : "false && window.assert", assertAlways: "window.assert", abstract: "window.assert(false, 'abstract method called');", G_IS_DEV: "false", + + G_CHINA_VERSION: JSON.stringify(chineseVersion), + G_WEGAME_VERSION: JSON.stringify(wegameVersion), G_IS_RELEASE: environment === "prod" ? "true" : "false", G_IS_STANDALONE: standalone ? "true" : "false", G_IS_BROWSER: isBrowser ? "true" : "false", @@ -37,7 +42,7 @@ module.exports = ({ G_ALL_UI_IMAGES: JSON.stringify(getAllResourceImages()), }; - const minifyNames = environment === "prod"; + const minifyNames = false; return { mode: "production", diff --git a/gulp/yarn.lock b/gulp/yarn.lock index 61c19815..f4f3ba7f 100644 --- a/gulp/yarn.lock +++ b/gulp/yarn.lock @@ -1,13787 +1,13179 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/core@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56" - integrity sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA== - dependencies: - "@babel/types" "^7.6.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.9.0", "@babel/generator@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" - integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== - dependencies: - "@babel/types" "^7.9.5" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-call-delegate@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" - integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== - dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/helper-define-map@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" - integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.5.5" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== - dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" - integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-member-expression-to-functions@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" - integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== - dependencies: - "@babel/types" "^7.5.5" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" - integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/types" "^7.5.5" - lodash "^4.17.13" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" - integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.5.5" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" - -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b" - integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ== - -"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== - -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - -"@babel/plugin-proposal-dynamic-import@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" - integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" - integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" - integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" - integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@^7.4.4", "@babel/plugin-transform-block-scoping@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc" - integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" - integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.5.5" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - "@babel/helper-split-export-declaration" "^7.4.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" - integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" - integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-for-of@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" - integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" - integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" - integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== - dependencies: - "@babel/helper-module-transforms" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-systemjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" - integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== - dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz#1e6e663097813bb4f53d42df0750cf28ad3bb3f1" - integrity sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew== - dependencies: - regexp-tree "^0.1.13" - -"@babel/plugin-transform-new-target@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - -"@babel/plugin-transform-parameters@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== - dependencies: - "@babel/helper-call-delegate" "^7.4.4" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" - integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-regenerator@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" - integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== - dependencies: - regenerator-transform "^0.14.0" - -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" - integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" - integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/preset-env@^7.5.4": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50" - integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-dynamic-import" "^7.5.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.5.5" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.5.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.0" - "@babel/plugin-transform-classes" "^7.5.5" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.4.4" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.6.0" - "@babel/plugin-transform-modules-systemjs" "^7.5.0" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.4.5" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.6.0" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" - -"@babel/runtime@^7.5.5": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.1.0", "@babel/template@^7.4.4": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" - integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.0" - -"@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516" - integrity sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" - integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.5" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" - integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" - integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - -"@electron/get@^1.3.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.5.0.tgz#6217d9d18fb71fbd8cd2445a31aa0edc723d19dd" - integrity sha512-tafxBz6n08G6SX961F/h8XFtpB/DdwRvJJoDeOH9x78jDSCMQ2G/rRWqSwLFp9oeMFBJf0Pf5Kkw6TKt5w9TWg== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - sanitize-filename "^1.6.2" - sumchecker "^3.0.0" - -"@jimp/bmp@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.6.8.tgz#8abbfd9e26ba17a47fab311059ea9f7dd82005b6" - integrity sha512-uxVgSkI62uAzk5ZazYHEHBehow590WAkLKmDXLzkr/XP/Hv2Fx1T4DKwJ/15IY5ktq5VAhAUWGXTyd8KWFsx7w== - dependencies: - "@jimp/utils" "^0.6.8" - bmp-js "^0.1.0" - core-js "^2.5.7" - -"@jimp/core@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.6.8.tgz#6a41089792516f6e64a5302d12eb562aa7847c7b" - integrity sha512-JOFqBBcSNiDiMZJFr6OJqC6viXj5NVBQISua0eacoYvo4YJtTajOIxC4MqWyUmGrDpRMZBR8QhSsIOwsFrdROA== - dependencies: - "@jimp/utils" "^0.6.8" - any-base "^1.1.0" - buffer "^5.2.0" - core-js "^2.5.7" - exif-parser "^0.1.12" - file-type "^9.0.0" - load-bmfont "^1.3.1" - mkdirp "0.5.1" - phin "^2.9.1" - pixelmatch "^4.0.2" - tinycolor2 "^1.4.1" - -"@jimp/custom@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.6.8.tgz#0476d7b3f5da3121d98895a2e14f2899e602f2b6" - integrity sha512-FrYlzZRVXP2vuVwd7Nc2dlK+iZk4g6IaT1Ib8Z6vU5Kkwlt83FJIPJ2UUFABf3bF5big0wkk8ZUihWxE4Nzdng== - dependencies: - "@jimp/core" "^0.6.8" - core-js "^2.5.7" - -"@jimp/gif@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.6.8.tgz#848dd4e6e1a56ca2b3ce528969e44dfa99a53b14" - integrity sha512-yyOlujjQcgz9zkjM5ihZDEppn9d1brJ7jQHP5rAKmqep0G7FU1D0AKcV+Ql18RhuI/CgWs10wAVcrQpmLnu4Yw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - omggif "^1.0.9" - -"@jimp/jpeg@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.6.8.tgz#4cad85a6d1e15759acb56bddef29aa3473859f2c" - integrity sha512-rGtXbYpFXAn471qLpTGvhbBMNHJo5KiufN+vC5AWyufntmkt5f0Ox2Cx4ijuBMDtirZchxbMLtrfGjznS4L/ew== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - jpeg-js "^0.3.4" - -"@jimp/plugin-blit@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.6.8.tgz#646ebb631f35afc28c1e8908524bc43d1e9afa3d" - integrity sha512-7Tl6YpKTSpvwQbnGNhsfX2zyl3jRVVopd276Y2hF2zpDz9Bycow7NdfNU/4Nx1jaf96X6uWOtSVINcQ7rGd47w== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-blur@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.6.8.tgz#7b753ae94f6099103f57c268c3b2679047eefe95" - integrity sha512-NpZCMKxXHLDQsX9zPlWtpMA660DQStY6/z8ZetyxCDbqrLe9YCXpeR4MNhdJdABIiwTm1W5FyFF4kp81PHJx3Q== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-color@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.6.8.tgz#4101cb1208879b331db6e43ea6b96eaf8dbaedbc" - integrity sha512-jjFyU0zNmGOH2rjzHuOMU4kaia0oo82s/7UYfn5h7OUkmUZTd6Do3ZSK1PiXA7KR+s4B76/Omm6Doh/0SGb7BQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - tinycolor2 "^1.4.1" - -"@jimp/plugin-contain@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.6.8.tgz#af95d33b63d0478943374ae15dd2607fc69cad14" - integrity sha512-p/P2wCXhAzbmEgXvGsvmxLmbz45feF6VpR4m9suPSOr8PC/i/XvTklTqYEUidYYAft4vHgsYJdS74HKSMnH8lw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-cover@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.6.8.tgz#490e3186627a34d93cc015c4169bac9070d6ad17" - integrity sha512-2PvWgk+PJfRsfWDI1G8Fpjrsu0ZlpNyZxO2+fqWlVo6y/y2gP4v08FqvbkcqSjNlOu2IDWIFXpgyU0sTINWZLg== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-crop@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.6.8.tgz#ffec8951a2f3eccad1e3cff9afff5326bd980ce7" - integrity sha512-CbrcpWE2xxPK1n/JoTXzhRUhP4mO07mTWaSavenCg664oQl/9XCtL+A0FekuNHzIvn4myEqvkiTwN7FsbunS/Q== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-displace@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.6.8.tgz#89df05ab7daaff6befc190bb8ac54ec8d57e533b" - integrity sha512-RmV2bPxoPE6mrPxtYSPtHxm2cGwBQr5a2p+9gH6SPy+eUMrbGjbvjwKNfXWUYD0leML+Pt5XOmAS9pIROmuruQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-dither@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.6.8.tgz#17e5b9f56575a871e329fef8b388e614b92d84f8" - integrity sha512-x6V/qjxe+xypjpQm7GbiMNqci1EW5UizrcebOhHr8AHijOEqHd2hjXh5f6QIGfrkTFelc4/jzq1UyCsYntqz9Q== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-flip@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.6.8.tgz#153df0c677f79d4078bb9e4c1f2ac392b96dc3a1" - integrity sha512-4il6Da6G39s9MyWBEee4jztEOUGJ40E6OlPjkMrdpDNvge6hYEAB31BczTYBP/CEY74j4LDSoY5LbcU4kv06yA== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-gaussian@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.6.8.tgz#100abc7ae1f19fe9c09ed41625b475aae7c6093c" - integrity sha512-pVOblmjv7stZjsqloi4YzHVwAPXKGdNaHPhp4KP4vj41qtc6Hxd9z/+VWGYRTunMFac84gUToe0UKIXd6GhoKw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-invert@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.6.8.tgz#f40bfaa3b592d21ff14ede0e49aabec88048cad0" - integrity sha512-11zuLiXDHr6tFv4U8aieXqNXQEKbDbSBG/h+X62gGTNFpyn8EVPpncHhOqrAFtZUaPibBqMFlNJ15SzwC7ExsQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-mask@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.6.8.tgz#e64405f7dacf0672bff74f3b95b724d9ac517f86" - integrity sha512-hZJ0OiKGJyv7hDSATwJDkunB1Ie80xJnONMgpUuUseteK45YeYNBOiZVUe8vum8QI1UwavgBzcvQ9u4fcgXc9g== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-normalize@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.6.8.tgz#a0180f2b8835e3638cdc5e057b44ac63f60db6ba" - integrity sha512-Q4oYhU+sSyTJI7pMZlg9/mYh68ujLfOxXzQGEXuw0sHGoGQs3B0Jw7jmzGa6pIS06Hup5hD2Zuh1ppvMdjJBfQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-print@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.6.8.tgz#66309549e01896473111e3a0ad2cee428638bd6e" - integrity sha512-2aokejGn4Drv1FesnZGqh5KEq0FQtR0drlmtyZrBH+r9cx7hh0Qgf4D1BOTDEgXkfSSngjGRjKKRW/fwOrVXYw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - load-bmfont "^1.4.0" - -"@jimp/plugin-resize@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.6.8.tgz#c26d9a973f7eec51ad9018fcbbac1146f7a73aa0" - integrity sha512-27nPh8L1YWsxtfmV/+Ub5dOTpXyC0HMF2cu52RQSCYxr+Lm1+23dJF70AF1poUbUe+FWXphwuUxQzjBJza9UoA== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-rotate@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.6.8.tgz#2afda247984eeebed95c1bb1b13ccd3be5973299" - integrity sha512-GbjETvL05BDoLdszNUV4Y0yLkHf177MnqGqilA113LIvx9aD0FtUopGXYfRGVvmtTOTouoaGJUc+K6qngvKxww== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-scale@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.6.8.tgz#5de403345859bb0b30bf3e242dedd8ceb6ecb96c" - integrity sha512-GzIYWR/oCUK2jAwku23zt19V1ssaEU4pL0x2XsLNKuuJEU6DvEytJyTMXCE7OLG/MpDBQcQclJKHgiyQm5gIOQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugins@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.6.8.tgz#5618170a986ced1ea795adcd9376122f2543b856" - integrity sha512-fMcTI72Vn/Lz6JftezTURmyP5ml/xGMe0Ljx2KRJ85IWyP33vDmGIUuutFiBEbh2+y7lRT+aTSmjs0QGa/xTmQ== - dependencies: - "@jimp/plugin-blit" "^0.6.8" - "@jimp/plugin-blur" "^0.6.8" - "@jimp/plugin-color" "^0.6.8" - "@jimp/plugin-contain" "^0.6.8" - "@jimp/plugin-cover" "^0.6.8" - "@jimp/plugin-crop" "^0.6.8" - "@jimp/plugin-displace" "^0.6.8" - "@jimp/plugin-dither" "^0.6.8" - "@jimp/plugin-flip" "^0.6.8" - "@jimp/plugin-gaussian" "^0.6.8" - "@jimp/plugin-invert" "^0.6.8" - "@jimp/plugin-mask" "^0.6.8" - "@jimp/plugin-normalize" "^0.6.8" - "@jimp/plugin-print" "^0.6.8" - "@jimp/plugin-resize" "^0.6.8" - "@jimp/plugin-rotate" "^0.6.8" - "@jimp/plugin-scale" "^0.6.8" - core-js "^2.5.7" - timm "^1.6.1" - -"@jimp/png@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.6.8.tgz#ee06cf078b381137ec7206c4bb1b4cfcbe15ca6f" - integrity sha512-JHHg/BZ7KDtHQrcG+a7fztw45rdf7okL/YwkN4qU5FH7Fcrp41nX5QnRviDtD9hN+GaNC7kvjvcqRAxW25qjew== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - pngjs "^3.3.3" - -"@jimp/tiff@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.6.8.tgz#79bd22ed435edbe29d02a2c8c9bf829f988ebacc" - integrity sha512-iWHbxd+0IKWdJyJ0HhoJCGYmtjPBOusz1z1HT/DnpePs/Lo3TO4d9ALXqYfUkyG74ZK5jULZ69KLtwuhuJz1bg== - dependencies: - core-js "^2.5.7" - utif "^2.0.1" - -"@jimp/types@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.6.8.tgz#4510eb635cd00b201745d70e38f791748baa7075" - integrity sha512-vCZ/Cp2osy69VP21XOBACfHI5HeR60Rfd4Jidj4W73UL+HrFWOtyQiJ7hlToyu1vI5mR/NsUQpzyQvz56ADm5A== - dependencies: - "@jimp/bmp" "^0.6.8" - "@jimp/gif" "^0.6.8" - "@jimp/jpeg" "^0.6.8" - "@jimp/png" "^0.6.8" - "@jimp/tiff" "^0.6.8" - core-js "^2.5.7" - timm "^1.6.1" - -"@jimp/utils@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.6.8.tgz#09f794945631173567aa50f72ac28170de58a63d" - integrity sha512-7RDfxQ2C/rarNG9iso5vmnKQbcvlQjBIlF/p7/uYj72WeZgVCB+5t1fFBKJSU4WhniHX4jUMijK+wYGE3Y3bGw== - dependencies: - core-js "^2.5.7" - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/cordova@^0.0.34": - version "0.0.34" - resolved "https://registry.yarnpkg.com/@types/cordova/-/cordova-0.0.34.tgz#ea7addf74ecec3d7629827a0c39e2c9addc73d04" - integrity sha1-6nrd907Ow9dimCegw54smt3HPQQ= - -"@types/filesystem@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz#ee3748eb5be140dcf980c3bd35f11aec5f7a3748" - integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== - dependencies: - "@types/filewriter" "*" - -"@types/filewriter@*": - version "0.0.28" - resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz#c054e8af4d9dd75db4e63abc76f885168714d4b3" - integrity sha1-wFTor02d11205jq8dviFFocU1LM= - -"@types/glob@^7.1.1": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.2.tgz#06ca26521353a545d94a0adc74f38a59d232c987" - integrity sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "14.0.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9" - integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA== - -"@types/node@^12.7.5": - version "12.7.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.5.tgz#e19436e7f8e9b4601005d73673b6dc4784ffcc2f" - integrity sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w== - -"@types/q@^1.5.1": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abab@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.1.tgz#3fa17797032b71410ec372e11668f4b4ffc86a82" - integrity sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@~1.3.4: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-globals@^4.3.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= - dependencies: - acorn "^3.0.4" - -acorn-jsx@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" - integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - -acorn@^5.5.0: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== - -acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== - -acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" - integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@^4.7.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" - integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== - dependencies: - ansi-wrap "^0.1.0" - -ansi-colors@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= - dependencies: - ansi-wrap "0.1.0" - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - -ansi-regex@^0.2.0, ansi-regex@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" - integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" - integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - -any-base@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" - integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= - dependencies: - buffer-equal "^1.0.0" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -arch@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" - integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== - -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= - dependencies: - file-type "^4.2.0" - -archiver@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-0.11.0.tgz#98177da7a6c0192b7f2798f30cd6eab8abd76690" - integrity sha1-mBd9p6bAGSt/J5jzDNbquKvXZpA= - dependencies: - async "~0.9.0" - buffer-crc32 "~0.2.1" - glob "~3.2.6" - lazystream "~0.1.0" - lodash "~2.4.1" - readable-stream "~1.0.26" - tar-stream "~0.4.0" - zip-stream "~0.4.0" - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-filter@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" - integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= - dependencies: - make-iterator "^1.0.0" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-map@^2.0.0, arr-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" - integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= - dependencies: - make-iterator "^1.0.0" - -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= - -array-each@^1.0.0, array-each@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" - integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-initial@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" - integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= - dependencies: - array-slice "^1.0.0" - is-number "^4.0.0" - -array-last@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" - integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== - dependencies: - is-number "^4.0.0" - -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - -array-slice@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" - integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== - -array-sort@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" - integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== - dependencies: - default-compare "^1.0.0" - get-value "^2.0.6" - kind-of "^5.0.2" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-uniq@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" - integrity sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -asar@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/asar/-/asar-2.0.1.tgz#8518a1c62c238109c15a5f742213e83a09b9fd38" - integrity sha512-Vo9yTuUtyFahkVMFaI6uMuX6N7k5DWa6a/8+7ov0/f8Lq9TVR0tUjzSzxQSxT1Y+RJIZgnP7BVb6Uhi+9cjxqA== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^2.20.0" - cuint "^0.2.2" - glob "^7.1.3" - minimatch "^3.0.4" - mkdirp "^0.5.1" - tmp-promise "^1.0.5" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.0, asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assets@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/assets/-/assets-3.0.1.tgz#7a69f4bcc3aca9702760e2a73a7e76ca93e9e3e0" - integrity sha512-fTyLNf/9V24y5zO83f4DAEuvaKj7MWBixbnqdZneAhsv1r21yQ/6ogZfvXHmphJAHsz4DhuOwHeJKVbGqqvk0Q== - dependencies: - async "^2.5.0" - bluebird "^3.4.6" - calipers "^2.0.0" - calipers-gif "^2.0.0" - calipers-jpeg "^2.0.0" - calipers-png "^2.0.0" - calipers-svg "^2.0.0" - calipers-webp "^2.0.0" - glob "^7.0.6" - lodash "^4.15.0" - mime "^2.4.0" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types@0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" - integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-done@^1.2.0, async-done@^1.2.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" - integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.2" - process-nextick-args "^2.0.0" - stream-exhaust "^1.0.1" - -async-each-series@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" - integrity sha1-dhfBkXQB/Yykooqtzj266Yr+tDI= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async-settle@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" - integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= - dependencies: - async-done "^1.2.2" - -async@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@>=0.2.9: - version "3.1.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.1.0.tgz#42b3b12ae1b74927b5217d8c0016baaf62463772" - integrity sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ== - -async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -async@~0.2.10: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= - -async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -async@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" - integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k= - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -audiosprite@*, audiosprite@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/audiosprite/-/audiosprite-0.7.2.tgz#ac431a6c30c127bbb6ed743e5d178862ddf9e31e" - integrity sha512-9Z6UwUuv4To5nUQNRIw5/Q3qA7HYm0ANzoW5EDGPEsU2oIRVgmIlLlm9YZfpPKoeUxt54vMStl2/762189VmJw== - dependencies: - async "~0.9.0" - glob "^6.0.4" - mkdirp "^0.5.0" - optimist "~0.6.1" - underscore "~1.8.3" - winston "~1.0.0" - -author-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" - integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA= - -autoprefixer@^9.4.3, autoprefixer@^9.4.7, autoprefixer@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47" - integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== - dependencies: - browserslist "^4.6.3" - caniuse-lite "^1.0.30000980" - chalk "^2.4.2" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.17" - postcss-value-parser "^4.0.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== - -axios@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" - integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== - dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-closure-elimination@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-closure-elimination/-/babel-plugin-closure-elimination-1.3.0.tgz#3217fbf6d416dfdf14ff41a8a34e4d0a6bfc22b2" - integrity sha512-ClKuSxKLLNhe69bvTMuONDI0dQDW49lXB2qtQyyKCzvwegRGel/q4/e+1EoDNDN97Hf1QkxGMbzpAGPmU4Tfjw== - -babel-plugin-console-source@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/babel-plugin-console-source/-/babel-plugin-console-source-2.0.4.tgz#263985b1d69b68e463358d087fa877dd967c5f41" - integrity sha512-OGhrdhuMjiEW0Ma0P9e2B4dFddCpJ/xN/RRaM/4wwDLl+6ZKf+Xd77FtVjpNeDzNRNk8wjRdStA4hpZizXzl1g== - -babel-plugin-danger-remove-unused-import@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-danger-remove-unused-import/-/babel-plugin-danger-remove-unused-import-1.1.2.tgz#ac39c30edfe524ef8cfc411fec5edc479d19e132" - integrity sha512-3bNmVAaakP3b1aROj7O3bOWj2kBa85sZR5naZ3Rn8L9buiZaAyZLgjfrPDL3zhX4wySOA5jrTm/wSmJPsMm3cg== - -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-runtime@^7.0.0-beta.3: - version "7.0.0-beta.3" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-7.0.0-beta.3.tgz#7c750de5514452c27612172506b49085a4a630f2" - integrity sha512-jlzZ8RACjt0QGxq+wqsw5bCQE9RcUyWpw987mDY3GYxTpOQT2xoyNoG++oVCHzr/nACLBIprfVBNvv/If1ZYcg== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -bach@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" - integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= - dependencies: - arr-filter "^1.1.1" - arr-flatten "^1.0.1" - arr-map "^2.0.0" - array-each "^1.0.0" - array-initial "^1.0.0" - array-last "^1.1.1" - async-done "^1.2.2" - async-settle "^1.0.0" - now-and-later "^2.0.0" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64-js@^1.0.2, base64-js@^1.2.3: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -beeper@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak= - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bin-build@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" - integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== - dependencies: - decompress "^4.0.0" - download "^6.2.2" - execa "^0.7.0" - p-map-series "^1.0.0" - tempfile "^2.0.0" - -bin-check@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" - integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== - dependencies: - execa "^0.7.0" - executable "^4.1.0" - -bin-version-check@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" - integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== - dependencies: - bin-version "^3.0.0" - semver "^5.6.0" - semver-truncate "^1.1.2" - -bin-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" - integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== - dependencies: - execa "^1.0.0" - find-versions "^3.0.0" - -bin-wrapper@^4.0.0, bin-wrapper@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" - integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== - dependencies: - bin-check "^4.1.0" - bin-version-check "^4.0.0" - download "^7.1.0" - import-lazy "^3.1.0" - os-filter-obj "^2.0.0" - pify "^4.0.1" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== - -bl@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-0.7.0.tgz#3fb0670602ac2878eb770dc2039f1836be62ae5b" - integrity sha1-P7BnBgKsKHjrdw3CA58YNr5irls= - dependencies: - readable-stream "~1.0.2" - -bl@^0.9.0: - version "0.9.5" - resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" - integrity sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ= - dependencies: - readable-stream "~1.0.26" - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - -bluebird@3.x.x, bluebird@^3.1.1, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" - integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== - -bmp-js@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" - integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -body-parser@~1.8.0: - version "1.8.4" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.8.4.tgz#d497e04bc13b3f9a8bd8c70bb0cdc16f2e028898" - integrity sha1-1JfgS8E7P5qL2McLsM3Bby4CiJg= - dependencies: - bytes "1.0.0" - depd "0.4.5" - iconv-lite "0.4.4" - media-typer "0.3.0" - on-finished "2.1.0" - qs "2.2.4" - raw-body "1.3.0" - type-is "~1.5.1" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.0.0, brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== - -browser-sync-client@^2.26.10: - version "2.26.10" - resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.26.10.tgz#ca9309ba19f9695e7945b95062da8a7ef3156711" - integrity sha512-8pYitKwpVva7hzXJI8lTljNDbA9fjMEobHSxWqegIUon/GjJAG3UgHB/+lBWnOLzTY8rGX66MvGqL1Aknyrj7g== - dependencies: - etag "1.8.1" - fresh "0.5.2" - mitt "^1.1.3" - rxjs "^5.5.6" - -browser-sync-ui@^2.26.10: - version "2.26.10" - resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.26.10.tgz#7b4b378de204b3913d4b8a6f93b16b1ba769d4bc" - integrity sha512-UfNSBItlXcmEvJ9RE4JooNtIsiIfHowp+7/52Jz4VFfQD4v78QK5/NV9DVrG41oMM3zLyhW4f/RliOb4ysStZg== - dependencies: - async-each-series "0.1.1" - connect-history-api-fallback "^1" - immutable "^3" - server-destroy "1.0.1" - socket.io-client "^2.0.4" - stream-throttle "^0.1.3" - -browser-sync@^2.26.10: - version "2.26.10" - resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.26.10.tgz#f03c043f615cf53c9294ccb2a5a5e25cfe11a230" - integrity sha512-JeVQP3CARvNA1DELj+ZGWj+/0pzE8+Omvq1WNgzaTXVdP3lNEbGxZbkjvLK7hHpQywjQ1sDJWlJQZT6V59XDTg== - dependencies: - browser-sync-client "^2.26.10" - browser-sync-ui "^2.26.10" - bs-recipes "1.3.4" - bs-snippet-injector "^2.0.1" - chokidar "^3.4.1" - connect "3.6.6" - connect-history-api-fallback "^1" - dev-ip "^1.0.1" - easy-extender "^2.3.4" - eazy-logger "^3" - etag "^1.8.1" - fresh "^0.5.2" - fs-extra "3.0.1" - http-proxy "^1.18.1" - immutable "^3" - localtunnel "^2.0.0" - micromatch "^4.0.2" - opn "5.3.0" - portscanner "2.1.1" - qs "6.2.3" - raw-body "^2.3.2" - resp-modifier "6.0.2" - rx "4.1.0" - send "0.16.2" - serve-index "1.9.1" - serve-static "1.13.2" - server-destroy "1.0.1" - socket.io "2.1.1" - ua-parser-js "^0.7.18" - yargs "^15.4.1" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6: - version "4.7.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== - dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" - -bs-recipes@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585" - integrity sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU= - -bs-snippet-injector@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz#61b5393f11f52559ed120693100343b6edb04dd5" - integrity sha1-YbU5PxH1JVntEgaTEANDtu2wTdU= - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.1, buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= - -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.2.0, buffer@^5.2.1: - version "5.4.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" - integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -bufferstreams@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/bufferstreams/-/bufferstreams-2.0.1.tgz#441b267c2fc3fee02bb1d929289da113903bd5ef" - integrity sha512-ZswyIoBfFb3cVDsnZLLj2IDJ/0ppYdil/v2EGlZXvoefO689FokEmFEldhN5dV7R2QBxFneqTJOMIpfqhj+n0g== - dependencies: - readable-stream "^2.3.6" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@1, bytes@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-swap@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/cache-swap/-/cache-swap-0.3.0.tgz#1c541aa108a50106f630bdd98fe1dec8ba133f51" - integrity sha1-HFQaoQilAQb2ML3Zj+HeyLoTP1E= - dependencies: - graceful-fs "^4.1.2" - mkdirp "^0.5.1" - object-assign "^4.0.1" - rimraf "^2.4.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -calipers-gif@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-gif/-/calipers-gif-2.0.0.tgz#b5eefec3064a77c6dcdbd5bdc51735a01bafdc37" - integrity sha1-te7+wwZKd8bc29W9xRc1oBuv3Dc= - dependencies: - bluebird "3.x.x" - -calipers-jpeg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-jpeg/-/calipers-jpeg-2.0.0.tgz#06d56a53f62717dd809cb956cf64423ce693465b" - integrity sha1-BtVqU/YnF92AnLlWz2RCPOaTRls= - dependencies: - bluebird "3.x.x" - -calipers-png@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-png/-/calipers-png-2.0.0.tgz#1d0d20e5c1ae5f79b74d5286a2e97f59bb70b658" - integrity sha1-HQ0g5cGuX3m3TVKGoul/Wbtwtlg= - dependencies: - bluebird "3.x.x" - -calipers-svg@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/calipers-svg/-/calipers-svg-2.0.1.tgz#cd9eaa58ef7428c1a14f5da57e56715fb60f6541" - integrity sha512-3PROqHARmj8wWudUC7DzXm1+mSocqgY7jNuehFNHgrUVrKf8o7MqDjS92vJz5LvZsAofJsoAFMajkqwbxBROSQ== - dependencies: - bluebird "3.x.x" - -calipers-webp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-webp/-/calipers-webp-2.0.0.tgz#e126ece2f84cd71779612bfa2b2653cd95cea77a" - integrity sha1-4Sbs4vhM1xd5YSv6KyZTzZXOp3o= - dependencies: - bluebird "3.x.x" - -calipers@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/calipers/-/calipers-2.0.1.tgz#0d3f303ce75ec5f1eda7fecfc7dba6736e35c926" - integrity sha512-AP4Ui2Z8fZf69d8Dx4cfJgPjQHY3m+QXGFCaAGu8pfNQjyajkosS+Kkf1n6pQDMZcelN5h3MdcjweUqxcsS4pg== - dependencies: - bluebird "3.x.x" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - dependencies: - callsites "^0.2.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989: - version "1.0.30000989" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" - integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -caw@^2.0.0, caw@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" - integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" - integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= - dependencies: - ansi-styles "^1.1.0" - escape-string-regexp "^1.0.0" - has-ansi "^0.1.0" - strip-ansi "^0.3.0" - supports-color "^0.2.0" - -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chokidar@^2.0.0, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.0, chokidar@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" - integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-dependency-plugin@^5.0.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" - integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - -circular-json@^0.5.9: - version "0.5.9" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d" - integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.2.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" - integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== - dependencies: - source-map "~0.6.0" - -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= - dependencies: - restore-cursor "^1.0.1" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - -clipboard-copy@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/clipboard-copy/-/clipboard-copy-3.1.0.tgz#4c59030a43d4988990564a664baeafba99f78ca4" - integrity sha512-Xsu1NddBXB89IUauda5BIq3Zq73UWkjkaQlPQbLNvNsd5WBMnTWPNKYR6HGaySOxGYZ+BKxP2E9X4ElnI3yiPA== - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - -clone-response@1.0.2, clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone-stats@^0.0.1, clone-stats@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8= - -clone@^1.0.0, clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-map@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" - integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= - dependencies: - arr-map "^2.0.2" - for-own "^1.0.0" - make-iterator "^1.0.0" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -color@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -colors@1.0.x: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= - -colors@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@2.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commander@^2.19.0, commander@^2.2.0, commander@^2.20.0, commander@^2.8.1: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= - dependencies: - graceful-readlink ">= 1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -compare-version@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" - integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -compress-commons@~0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-0.1.6.tgz#0c740870fde58cba516f0ac0c822e33a0b85dfa3" - integrity sha1-DHQIcP3ljLpRbwrAyCLjOguF36M= - dependencies: - buffer-crc32 "~0.2.1" - crc32-stream "~0.3.1" - readable-stream "~1.0.26" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -config-chain@^1.1.11, config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -connect-history-api-fallback@^1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -connect-livereload@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/connect-livereload/-/connect-livereload-0.4.1.tgz#0f8a1a816bc9baffae4637ccea917462fe35917a" - integrity sha1-D4oagWvJuv+uRjfM6pF0Yv41kXo= - -connect@3.6.6: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - -connect@^3.0.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -console-stream@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" - integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-props@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" - integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== - dependencies: - each-props "^1.3.0" - is-plain-object "^2.0.1" - -core-js-compat@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" - integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== - dependencies: - browserslist "^4.6.6" - semver "^6.3.0" - -core-js@3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09" - integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw== - -core-js@^2.4.0, core-js@^2.5.7: - version "2.6.9" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" - integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== - -core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -crc32-stream@~0.3.1: - version "0.3.4" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-0.3.4.tgz#73bc25b45fac1db6632231a7bfce8927e9f06552" - integrity sha1-c7wltF+sHbZjIjGnv86JJ+nwZVI= - dependencies: - buffer-crc32 "~0.2.1" - readable-stream "~1.0.24" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-zip@^2.1.5: - version "2.1.6" - resolved "https://registry.yarnpkg.com/cross-zip/-/cross-zip-2.1.6.tgz#344d3ba9488609942987d815bb84860cff3d9491" - integrity sha512-xLIETNkzRcU6jGRzenJyRFxahbtP4628xEKMTI/Ql0Vu8m4h8M7uRLVi7E5OYHuJ6VQPsG4icJumKAFUvfm0+A== - dependencies: - rimraf "^3.0.0" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/crypto/-/crypto-1.0.1.tgz#2af1b7cad8175d24c8a1b0778255794a21803037" - integrity sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== - -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.9.1.tgz#2e1aa00ce7e30ef2c6a7a4b300a080a7c979e0dc" - integrity sha1-LhqgDOfjDvLGp6SzAKCAp8l54Nw= - dependencies: - csso "1.3.x" - loader-utils "~0.2.2" - source-map "~0.1.38" - -css-mqpacker@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/css-mqpacker/-/css-mqpacker-7.0.0.tgz#48f4a0ff45b81ec661c4a33ed80b9db8a026333b" - integrity sha512-temVrWS+sB4uocE2quhW8ru/KguDmGhCU7zN213KxtDvWOH3WS/ZUStfpF4fdCT7W8fPpFrQdWRFqtFtPPfBLA== - dependencies: - minimist "^1.2.0" - postcss "^7.0.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" - integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== - dependencies: - boolbase "^1.0.0" - css-what "^2.1.2" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.29: - version "1.0.0-alpha.29" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" - integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - -css-tree@1.0.0-alpha.33: - version "1.0.0-alpha.33" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" - integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== - dependencies: - mdn-data "2.0.4" - source-map "^0.5.3" - -css-unit-converter@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" - integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= - -css-what@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssnano-preset-advanced@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-4.0.7.tgz#d981527b77712e2f3f3f09c73313e9b71b278b88" - integrity sha512-j1O5/DQnaAqEyFFQfC+Z/vRlLXL3LxJHN+lvsfYqr7KgPH74t69+Rsy2yXkovWNaJjZYBpdz2Fj8ab2nH7pZXw== - dependencies: - autoprefixer "^9.4.7" - cssnano-preset-default "^4.0.7" - postcss-discard-unused "^4.0.1" - postcss-merge-idents "^4.0.1" - postcss-reduce-idents "^4.0.2" - postcss-zindex "^4.0.1" - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@1.3.x: - version "1.3.12" - resolved "https://registry.yarnpkg.com/csso/-/csso-1.3.12.tgz#fc628694a2d38938aaac4996753218fd311cdb9e" - integrity sha1-/GKGlKLTiTiqrEmWdTIY/TEc254= - -csso@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" - integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== - dependencies: - css-tree "1.0.0-alpha.29" - -cssom@0.3.x, cssom@^0.3.4: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cycle@1.0.x: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" - integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI= - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - -dateformat@^1.0.7-1.2.3: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" - -dateformat@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" - integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= - -debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@=3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@~0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130" - integrity sha1-IP9NJvXkIstoobrLu2EDmtjBwTA= - -decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0, decompress@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d" - integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50= - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deep-scope-analyser@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/deep-scope-analyser/-/deep-scope-analyser-1.7.0.tgz#23015b3a1d23181b1d9cebd25b783a7378ead8da" - integrity sha512-rl5Dmt2IZkFpZo6XbEY1zG8st2Wpq8Pi/dV2gz8ZF6BDYt3fnor2JNxHwdO1WLo0k6JbmYp0x8MNy8kE4l1NtA== - dependencies: - esrecurse "^4.2.1" - estraverse "^4.2.0" - -default-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" - integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== - dependencies: - kind-of "^5.0.2" - -default-resolution@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" - integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= - -defaults@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" - integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -delete-empty@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/delete-empty/-/delete-empty-3.0.0.tgz#f8040f2669f26fa7060bc2304e9859c593b685e8" - integrity sha512-ZUyiwo76W+DYnKsL3Kim6M/UOavPdBJgDYWOmuQhYaZvJH0AXAHbUNyEDtRbBra8wqqr686+63/0azfEk1ebUQ== - dependencies: - ansi-colors "^4.1.0" - minimist "^1.2.0" - path-starts-with "^2.0.0" - rimraf "^2.6.2" - -depd@0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/depd/-/depd-0.4.5.tgz#1a664b53388b4a6573e8ae67b5f767c693ca97f1" - integrity sha1-GmZLUziLSmVz6K5ntfdnxpPKl/E= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -deprecated@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" - integrity sha1-+cmvVGSvoeepcUWKi97yqpTVuxk= - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -dev-ip@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" - integrity sha1-p2o+0YVb56ASu4rBbLgPPADcKPA= - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^1.2.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" - integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -download@^6.2.2: - version "6.2.5" - resolved "https://registry.yarnpkg.com/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" - integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== - dependencies: - caw "^2.0.0" - content-disposition "^0.5.2" - decompress "^4.0.0" - ext-name "^5.0.0" - file-type "5.2.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^7.0.0" - make-dir "^1.0.0" - p-event "^1.0.0" - pify "^3.0.0" - -download@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" - integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== - dependencies: - archive-type "^4.0.0" - caw "^2.0.1" - content-disposition "^0.5.2" - decompress "^4.2.0" - ext-name "^5.0.0" - file-type "^8.1.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^8.3.1" - make-dir "^1.2.0" - p-event "^2.1.0" - pify "^3.0.0" - -duplexer2@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= - dependencies: - readable-stream "~1.1.9" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -duplexify@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" - integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -each-props@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" - integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== - dependencies: - is-plain-object "^2.0.1" - object.defaults "^1.1.0" - -easy-extender@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.4.tgz#298789b64f9aaba62169c77a2b3b64b4c9589b8f" - integrity sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q== - dependencies: - lodash "^4.17.10" - -eazy-logger@^3: - version "3.0.2" - resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.0.2.tgz#a325aa5e53d13a2225889b2ac4113b2b9636f4fc" - integrity sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw= - dependencies: - tfunk "^3.0.1" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - -ee-first@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.0.5.tgz#8c9b212898d8cd9f1a9436650ce7be202c9e9ff0" - integrity sha1-jJshKJjYzZ8alDZlDOe+ICyen/A= - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-notarize@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.1.1.tgz#c3563d70c5e7b3315f44e8495b30050a8c408b91" - integrity sha512-TpKfJcz4LXl5jiGvZTs5fbEx+wUFXV5u8voeG5WCHWfY/cdgdD8lDZIZRqLVOtR3VO+drgJ9aiSHIO9TYn/fKg== - dependencies: - debug "^4.1.1" - fs-extra "^8.0.1" - -electron-osx-sign@^0.4.11: - version "0.4.13" - resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.4.13.tgz#4f77f0ff2f5cd71b91c1e6ce550c3a2937ebbef2" - integrity sha512-+44lasF26lSBLh9HDG6TGpPjuqqtWGD9Pcp+YglE8gyf1OGYdbW8UCIshKPh69O/AcdvDB0ohaTYQz3nbGPbtw== - dependencies: - bluebird "^3.5.0" - compare-version "^0.1.2" - debug "^2.6.8" - isbinaryfile "^3.0.2" - minimist "^1.2.0" - plist "^3.0.1" - -electron-packager@^14.0.6: - version "14.0.6" - resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-14.0.6.tgz#e187f2ef83cc29a97a0f940b7c3bb5e4edc8a8e2" - integrity sha512-X+ikV+TnnNkIrK93vOjsjPeykCQBFxBS7LXKMTE1s62rXWirGMdjWL+edVkBOMRkH0ROJyFmWM28Dpj6sfEg+A== - dependencies: - "@electron/get" "^1.3.0" - asar "^2.0.1" - cross-zip "^2.1.5" - debug "^4.0.1" - electron-notarize "^0.1.1" - electron-osx-sign "^0.4.11" - fs-extra "^8.1.0" - galactus "^0.2.1" - get-package-info "^1.0.0" - junk "^3.1.0" - parse-author "^2.0.0" - plist "^3.0.0" - rcedit "^2.0.0" - resolve "^1.1.6" - sanitize-filename "^1.6.0" - semver "^6.0.0" - yargs-parser "^13.0.0" - -electron-to-chromium@^1.3.247: - version "1.3.264" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.264.tgz#ed837f44524d0601a7b2b7b6efd86e35753d0e27" - integrity sha512-z8E7WkrrquCuGYv+kKyybuZIbdms+4PeHp7Zm2uIgEhAigP0bOwqXILItwj0YO73o+QyHY/7XtEfP5DsHOWQgQ== - -elliptic@^6.0.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" - integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -email-validator@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" - integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.1, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -end-of-stream@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" - integrity sha1-jhdyBsPICDfYVjLouTWd/osvbq8= - dependencies: - once "~1.3.0" - -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-client@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.0.tgz#82a642b42862a9b3f7a188f41776b2deab643700" - integrity sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~4.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - -enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.5.1: - version "1.14.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497" - integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" - object-keys "^1.1.1" - string.prototype.trimleft "^2.0.0" - string.prototype.trimright "^2.0.0" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.14: - version "0.10.51" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" - integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "^1.0.0" - -es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" - integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== - dependencies: - d "^1.0.1" - es5-ext "^0.10.51" - -es6-templates@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" - integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= - dependencies: - recast "~0.11.12" - through "~2.3.6" - -es6-weak-map@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escodegen@^1.11.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" - integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== - dependencies: - eslint-visitor-keys "^1.0.0" - -eslint-visitor-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== - -eslint@^2.7.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" - integrity sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE= - dependencies: - chalk "^1.1.3" - concat-stream "^1.4.6" - debug "^2.1.1" - doctrine "^1.2.2" - es6-map "^0.1.3" - escope "^3.6.0" - espree "^3.1.6" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^1.1.1" - glob "^7.0.3" - globals "^9.2.0" - ignore "^3.1.2" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - optionator "^0.8.1" - path-is-absolute "^1.0.0" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.6.0" - strip-json-comments "~1.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - -eslint@^5.9.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.11" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.2.3" - text-table "^0.2.0" - -espree@^3.1.6: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== - dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -esprima@^3.1.3, esprima@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0, esrecurse@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@1.8.1, etag@^1.8.1, etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-buffer@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" - integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== - dependencies: - execa "^0.7.0" - p-finally "^1.0.0" - pify "^3.0.0" - rimraf "^2.5.4" - tempfile "^2.0.0" - -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== - dependencies: - cross-spawn "^6.0.0" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.2.tgz#ad87fb7b2d9d564f70d2b62d511bee41d5cbb240" - integrity sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -executable@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -exif-parser@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" - integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -eyes@0.1.x: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= - -fancy-log@^1.1.0, fancy-log@^1.2.0, fancy-log@^1.3.2, fancy-log@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-glob@^3.0.3: - version "3.2.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" - integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastdom@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/fastdom/-/fastdom-1.0.9.tgz#b395fab11a3701173c02a054fe769d8f596a0a26" - integrity sha512-SSp4fbVzu8JkkG01NUX+0iOwe9M5PN3MGIQ84txLf4TkkJG4q30khkzumKgi4hUqO1+jX6wLHfnCPoZ6eSZ6Tg== - dependencies: - strictdom "^1.0.1" - -faster.js@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/faster.js/-/faster.js-1.1.1.tgz#8bbd7eefdb8f03faac26ad5025b059f94c5cfb4d" - integrity sha512-vPThNSLL/E1f7cLHd9yuayxZR82o/Iic4S5ZY45iY5AgBLNIlr3b3c+VpDjoYqjY9a9C/FQVUQy9oTILVP7X0g== - -fastparse@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== - dependencies: - reusify "^1.0.4" - -faye-websocket@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.7.3.tgz#cc4074c7f4a4dfd03af54dd65c354b135132ce11" - integrity sha1-zEB0x/Sk39A69U3WXDVLE1EyzhE= - dependencies: - websocket-driver ">=0.3.6" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== - -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^1.1.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" - integrity sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g= - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-loader@^0.8.1: - version "0.8.5" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.8.5.tgz#9275d031fe780f27d47f5f4af02bd43713cc151b" - integrity sha1-knXQMf54DyfUf19K8CvUNxPMFRs= - dependencies: - loader-utils "~0.2.5" - -file-type@5.2.0, file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= - -file-type@^10.4.0: - version "10.11.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" - integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== - -file-type@^12.0.0: - version "12.4.2" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.4.2.tgz#a344ea5664a1d01447ee7fb1b635f72feb6169d9" - integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg== - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - -file-type@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" - integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== - -file-type@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" - integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" - integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-index@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" - integrity sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ= - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-versions@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" - integrity sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q== - dependencies: - array-uniq "^2.1.0" - semver-regex "^2.0.0" - -findup-sync@3.0.0, findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -findup-sync@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" - integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= - dependencies: - detect-file "^1.0.0" - is-glob "^3.1.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -findup-sync@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" - integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^4.0.2" - resolve-dir "^1.0.1" - -fined@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" - integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== - dependencies: - expand-tilde "^2.0.2" - is-plain-object "^2.0.3" - object.defaults "^1.1.0" - object.pick "^1.2.0" - parse-filepath "^1.0.1" - -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= - -flagged-respawn@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" - integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== - -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0, flatted@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= - -flora-colossus@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-1.0.1.tgz#aba198425a8185341e64f9d2a6a96fd9a3cbdb93" - integrity sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA== - dependencies: - debug "^4.1.1" - fs-extra "^7.0.0" - -fluent-ffmpeg@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz#c952de2240f812ebda0aa8006d7776ee2acf7d74" - integrity sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ= - dependencies: - async ">=0.2.9" - which "^1.1.1" - -flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -follow-redirects@^1.0.0: - version "1.12.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.12.1.tgz#de54a6205311b93d60398ebc01cf7015682312b6" - integrity sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -fork-stream@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/fork-stream/-/fork-stream-0.0.4.tgz#db849fce77f6708a5f8f386ae533a0907b54ae70" - integrity sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2, fresh@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0, from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -front-matter@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz#f75983b9f2f413be658c93dfd7bd8ce4078f5cdb" - integrity sha1-91mDufL0E75ljJPf172M5AePXNs= - dependencies: - js-yaml "^3.4.6" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@3.0.1, fs-extra@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^3.0.0" - universalify "^0.1.0" - -fs-extra@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.0.1, fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -galactus@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/galactus/-/galactus-0.2.1.tgz#cbed2d20a40c1f5679a35908e2b9415733e78db9" - integrity sha1-y+0tIKQMH1Z5o1kI4rlBVzPnjbk= - dependencies: - debug "^3.1.0" - flora-colossus "^1.0.0" - fs-extra "^4.0.0" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" - integrity sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8= - dependencies: - globule "~0.1.0" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -generate-function@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" - integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== - dependencies: - is-property "^1.0.2" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= - dependencies: - is-property "^1.0.0" - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-package-info@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c" - integrity sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw= - dependencies: - bluebird "^3.1.1" - debug "^2.2.0" - lodash.get "^4.0.0" - read-pkg-up "^2.0.0" - -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" - integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== - dependencies: - npm-conf "^1.1.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -gifsicle@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/gifsicle/-/gifsicle-5.1.0.tgz#08f878e9048c70adf046185115a6350516a1fdc0" - integrity sha512-hQsOH7yjC7fMokntysN6f2QuxrnX+zmKKKVy0sC3Vhtnk8WrOxLdfH/Z2PNn7lVVx+1+drzIeAe8ufcmdSC/8g== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - execa "^4.0.0" - logalot "^2.0.0" - -glob-all@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" - integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs= - dependencies: - glob "^7.0.5" - yargs "~1.2.6" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob-stream@^3.1.5: - version "3.1.18" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" - integrity sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs= - dependencies: - glob "^4.3.1" - glob2base "^0.0.12" - minimatch "^2.0.1" - ordered-read-streams "^0.1.0" - through2 "^0.6.1" - unique-stream "^1.0.0" - -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob-watcher@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" - integrity sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs= - dependencies: - gaze "^0.5.1" - -glob-watcher@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" - integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== - dependencies: - anymatch "^2.0.0" - async-done "^1.2.0" - chokidar "^2.0.0" - is-negated-glob "^1.0.0" - just-debounce "^1.0.0" - object.defaults "^1.1.0" - -glob2base@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" - integrity sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY= - dependencies: - find-index "^0.1.1" - -glob@^4.3.1: - version "4.5.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" - integrity sha1-xstz0yJsHv7wTePFbQEvAzd+4V8= - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "^2.0.1" - once "^1.3.0" - -glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~3.1.21: - version "3.1.21" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" - integrity sha1-0p4KBV3qUTj00H7UDomC6DwgZs0= - dependencies: - graceful-fs "~1.2.0" - inherits "1" - minimatch "~0.2.11" - -glob@~3.2.6: - version "3.2.11" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" - integrity sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0= - dependencies: - inherits "2" - minimatch "0.3" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^11.1.0, globals@^11.7.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^9.18.0, globals@^9.2.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globby@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globule@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" - integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - -globule@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" - integrity sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU= - dependencies: - glob "~3.1.21" - lodash "~1.0.1" - minimatch "~0.2.11" - -glogg@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" - integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== - dependencies: - sparkles "^1.0.0" - -gonzales-pe-sl@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz#6a868bc380645f141feeb042c6f97fcc71b59fe6" - integrity sha1-aoaLw4BkXxQf7rBCxvl/zHG1n+Y= - dependencies: - minimist "1.1.x" - -gonzales-pe@^4.2.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.4.tgz#356ae36a312c46fe0f1026dd6cb539039f8500d2" - integrity sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ== - dependencies: - minimist "1.1.x" - -got@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -got@^8.3.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz#0034947ce9ed695ec8ab0b854bc919e82b1ffaef" - integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg== - dependencies: - natives "^1.1.3" - -graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== - -graceful-fs@^4.2.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -graceful-fs@~1.2.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" - integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q= - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= - -gulp-audiosprite@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/gulp-audiosprite/-/gulp-audiosprite-1.1.0.tgz#1762d7fb9a669f372b33c1511e3402d79b624892" - integrity sha512-CwSfZjmNPlTyzcAFaE8RiKzh1dQFDLPPZMHshKwvGqNeTB86s30K8hMXGrrjFqHNF9xb0SUnXfbYT32MO4aNog== - dependencies: - audiosprite "*" - through2 "*" - vinyl "*" - -gulp-cache@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gulp-cache/-/gulp-cache-1.1.3.tgz#7c427670aad4d25364c3cc9c53e492b348190d27" - integrity sha512-NE814LdX1NWQn2sMzn+Rf673o4mqlgg7OyLf92oQ4KEl6DdPfduEGLNH+HexLVcFZXH93DBuxFOvpv4/Js5VaA== - dependencies: - "@babel/runtime" "^7.5.5" - cache-swap "^0.3.0" - core-js "3" - object.pick "^1.3.0" - plugin-error "^1.0.1" - through2 "3.0.1" - vinyl "^2.2.0" - -gulp-cached@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/gulp-cached/-/gulp-cached-1.1.1.tgz#fe7cd4f87f37601e6073cfedee5c2bdaf8b6acce" - integrity sha1-/nzU+H83YB5gc8/t7lwr2vi2rM4= - dependencies: - lodash.defaults "^4.2.0" - through2 "^2.0.1" - -gulp-clean@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/gulp-clean/-/gulp-clean-0.4.0.tgz#3bc25e7084e641bbd7bde057cf90c01c50d95950" - integrity sha512-DARK8rNMo4lHOFLGTiHEJdf19GuoBDHqGUaypz+fOhrvOs3iFO7ntdYtdpNxv+AzSJBx/JfypF0yEj9ks1IStQ== - dependencies: - fancy-log "^1.3.2" - plugin-error "^0.1.2" - rimraf "^2.6.2" - through2 "^2.0.3" - vinyl "^2.1.0" - -gulp-cli@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f" - integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== - dependencies: - ansi-colors "^1.0.1" - archy "^1.0.0" - array-sort "^1.0.0" - color-support "^1.1.3" - concat-stream "^1.6.0" - copy-props "^2.0.1" - fancy-log "^1.3.2" - gulplog "^1.0.0" - interpret "^1.4.0" - isobject "^3.0.1" - liftoff "^3.1.0" - matchdep "^2.0.0" - mute-stdout "^1.0.0" - pretty-hrtime "^1.0.0" - replace-homedir "^1.0.0" - semver-greatest-satisfied-range "^1.1.0" - v8flags "^3.2.0" - yargs "^7.1.0" - -gulp-dom@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulp-dom/-/gulp-dom-1.0.0.tgz#f834d5299c09b85e11c32505044a2ebe86ae1375" - integrity sha512-hD2w2t3fsjPicX2mT6MFFb+eP3FyCVtEHdejGMMH4+w9EBFxA2xIZadqlzYdAEdE+39dP1aGatuhdHJteUvn1A== - dependencies: - jsdom "12.2.0" - plugin-error "1.0.1" - through2 "2.0.3" - -gulp-flatten@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/gulp-flatten/-/gulp-flatten-0.4.0.tgz#d9ac819416c30fd5dfb3dea9da79c83a1bcd61d1" - integrity sha512-eg4spVTAiv1xXmugyaCxWne1oPtNG0UHEtABx5W8ScLiqAYceyYm6GYA36x0Qh8KOIXmAZV97L2aYGnKREG3Sg== - dependencies: - plugin-error "^0.1.2" - through2 "^2.0.0" - -gulp-fluent-ffmpeg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-fluent-ffmpeg/-/gulp-fluent-ffmpeg-2.0.0.tgz#5b5ed180d317fd3d800ddbcd6376ffb46294b836" - integrity sha512-pwG6N+NKwLzO/0ybzgcwiADKZ4OzpFjNR4drqCvbvluYcSh/yvsAW7wm63jFzpJIjfFnanYGPNWiUn8+TuTR/g== - dependencies: - concat-stream "^2.0.0" - fluent-ffmpeg "^2.1.2" - plugin-error "^1.0.1" - through2 "^3.0.1" - -gulp-html-beautify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gulp-html-beautify/-/gulp-html-beautify-1.0.1.tgz#2834c6f77669605726eee55e3205f63074b7a152" - integrity sha1-KDTG93ZpYFcm7uVeMgX2MHS3oVI= - dependencies: - js-beautify "^1.5.10" - rcloader "^0.1.4" - through2 "^2.0.0" - -gulp-htmlmin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/gulp-htmlmin/-/gulp-htmlmin-5.0.1.tgz#90fc5e8ad0425a9e86d5d521427184e7276365e7" - integrity sha512-ASlyDPZOSKjHYUifYV0rf9JPDflN9IRIb8lw2vRqtYMC4ljU3zAmnnaVXwFQ3H+CfXxZSUesZ2x7jrnPJu93jA== - dependencies: - html-minifier "^3.5.20" - plugin-error "^1.0.1" - through2 "^2.0.3" - -gulp-if@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gulp-if/-/gulp-if-3.0.0.tgz#6c3e7edc8bafadc34f2ebecb314bf43324ba1e40" - integrity sha512-fCUEngzNiEZEK2YuPm+sdMpO6ukb8+/qzbGfJBXyNOXz85bCG7yBI+pPSl+N90d7gnLvMsarthsAImx0qy7BAw== - dependencies: - gulp-match "^1.1.0" - ternary-stream "^3.0.0" - through2 "^3.0.1" - -gulp-imagemin@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/gulp-imagemin/-/gulp-imagemin-7.1.0.tgz#d1810a908fb64b4fbf15a750d303d988443e68cf" - integrity sha512-6xBTNybmPY2YrvrhhlS8Mxi0zn0ypusLon63p9XXxDtIf7U7c6KcViz94K7Skosucr3378A6IY2kJSjJyuwylQ== - dependencies: - chalk "^3.0.0" - fancy-log "^1.3.2" - imagemin "^7.0.0" - plugin-error "^1.0.1" - plur "^3.0.1" - pretty-bytes "^5.3.0" - through2-concurrent "^2.0.0" - optionalDependencies: - imagemin-gifsicle "^7.0.0" - imagemin-mozjpeg "^8.0.0" - imagemin-optipng "^7.0.0" - imagemin-svgo "^7.0.0" - -gulp-load-plugins@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/gulp-load-plugins/-/gulp-load-plugins-2.0.3.tgz#5f275c0b7f1925d8a1ce57cbd5c346d6af6b64fb" - integrity sha512-U/1Sml7UbyOu2kH6Fbpo+ka2xyp4DRH6+oDtHgC8oKsnlQRuiBQYQ/LS4k6HxBv1HJlucaNV/SdwZXtLBuvSqg== - dependencies: - array-unique "^0.3.2" - fancy-log "^1.2.0" - findup-sync "^4.0.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - micromatch "^4.0.2" - resolve "^1.15.1" - -gulp-match@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/gulp-match/-/gulp-match-1.1.0.tgz#552b7080fc006ee752c90563f9fec9d61aafdf4f" - integrity sha512-DlyVxa1Gj24DitY2OjEsS+X6tDpretuxD6wTfhXE/Rw2hweqc1f6D/XtsJmoiCwLWfXgR87W9ozEityPCVzGtQ== - dependencies: - minimatch "^3.0.3" - -gulp-phonegap-build@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/gulp-phonegap-build/-/gulp-phonegap-build-0.1.5.tgz#36c145e63cd204702be0f3b99be19e096712bcaf" - integrity sha1-NsFF5jzSBHAr4PO5m+GeCWcSvK8= - dependencies: - archiver "~0.11.0" - gulp "~3.8.7" - gulp-util "~3.0.0" - lodash "~2.4.1" - needle "" - read "~1.0.4" - through2 "~0.6.1" - vinyl-buffer "0.0.0" - vinyl-source-stream "^0.1.1" - -gulp-plumber@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/gulp-plumber/-/gulp-plumber-1.2.1.tgz#d38700755a300b9d372318e4ffb5ff7ced0b2c84" - integrity sha512-mctAi9msEAG7XzW5ytDVZ9PxWMzzi1pS2rBH7lA095DhMa6KEXjm+St0GOCc567pJKJ/oCvosVAZEpAey0q2eQ== - dependencies: - chalk "^1.1.3" - fancy-log "^1.3.2" - plugin-error "^0.1.2" - through2 "^2.0.3" - -gulp-pngquant@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/gulp-pngquant/-/gulp-pngquant-1.0.13.tgz#7160b4b51080898c9bed896ae0432546c46a8130" - integrity sha512-oSo5Rw2Rb10eyGhc8XKbghq6yteMmxvsSAKGOZU0ssbylMHk3WoTWcEpNg0YWMyRjrY913y+B+PA4wHM1AL2wA== - dependencies: - chalk "^3.0.0" - fancy-log "^1.3.3" - plugin-error "^1.0.1" - pngquant-bin "^5.0.2" - through2 "^3.0.1" - -gulp-postcss@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-8.0.0.tgz#8d3772cd4d27bca55ec8cb4c8e576e3bde4dc550" - integrity sha512-Wtl6vH7a+8IS/fU5W9IbOpcaLqKxd5L1DUOzaPmlnCbX1CrG0aWdwVnC3Spn8th0m8D59YbysV5zPUe1n/GJYg== - dependencies: - fancy-log "^1.3.2" - plugin-error "^1.0.1" - postcss "^7.0.2" - postcss-load-config "^2.0.0" - vinyl-sourcemaps-apply "^0.2.1" - -gulp-rename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-2.0.0.tgz#9bbc3962b0c0f52fc67cd5eaff6c223ec5b9cf6c" - integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== - -gulp-sass-lint@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/gulp-sass-lint/-/gulp-sass-lint-1.4.0.tgz#6f7096c5abcbc0ce99ddf060c9e1a99067a47ebe" - integrity sha512-XerYvHx7rznInkedMw5Ayif+p8EhysOVHUBvlgUa0FSl88H2cjNjaRZ3NGn5Efmp+2HxpXp4NHqMIbOSdwef3A== - dependencies: - plugin-error "^0.1.2" - sass-lint "^1.12.0" - through2 "^2.0.2" - -gulp-sass@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-4.1.0.tgz#486d7443c32d42bf31a6b1573ebbdaa361de7427" - integrity sha512-xIiwp9nkBLcJDpmYHbEHdoWZv+j+WtYaKD6Zil/67F3nrAaZtWYN5mDwerdo7EvcdBenSAj7Xb2hx2DqURLGdA== - dependencies: - chalk "^2.3.0" - lodash "^4.17.11" - node-sass "^4.8.3" - plugin-error "^1.0.1" - replace-ext "^1.0.0" - strip-ansi "^4.0.0" - through2 "^2.0.0" - vinyl-sourcemaps-apply "^0.2.0" - -"gulp-sftp@git+https://git@github.com/webksde/gulp-sftp": - version "0.1.6" - resolved "git+https://git@github.com/webksde/gulp-sftp#c8dfb20e290477eeed66a867406576d0c3d4fc6b" - dependencies: - async "~0.9.0" - gulp-util "~3.0.0" - object-assign "~0.3.1" - parents "~1.0.0" - ssh2 "~0.6.1" - through2 "~0.4.2" - -gulp-terser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gulp-terser/-/gulp-terser-1.2.0.tgz#41df2a1d0257d011ba8b05efb2568432ecd0495b" - integrity sha512-lf+jE2DALg2w32p0HRiYMlFYRYelKZPNunHp2pZccCYrrdCLOs0ItbZcN63yr2pbz116IyhUG9mD/QbtRO1FKA== - dependencies: - plugin-error "^1.0.1" - terser "^4.0.0" - through2 "^3.0.1" - vinyl-sourcemaps-apply "^0.2.1" - -gulp-util@^2.2.19: - version "2.2.20" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-2.2.20.tgz#d7146e5728910bd8f047a6b0b1e549bc22dbd64c" - integrity sha1-1xRuVyiRC9jwR6awseVJvCLb1kw= - dependencies: - chalk "^0.5.0" - dateformat "^1.0.7-1.2.3" - lodash._reinterpolate "^2.4.1" - lodash.template "^2.4.1" - minimist "^0.2.0" - multipipe "^0.1.0" - through2 "^0.5.0" - vinyl "^0.2.1" - -gulp-util@^3.0.0, gulp-util@~3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" - integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= - dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^2.0.0" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulp-webserver@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/gulp-webserver/-/gulp-webserver-0.9.1.tgz#e09992165d97c5865616d642a1601529b0367064" - integrity sha1-4JmSFl2XxYZWFtZCoWAVKbA2cGQ= - dependencies: - connect "^3.0.1" - connect-livereload "^0.4.0" - gulp-util "^2.2.19" - isarray "0.0.1" - node.extend "^1.0.10" - open "^0.0.5" - proxy-middleware "^0.5.0" - serve-index "^1.1.4" - serve-static "^1.3.0" - through2 "^0.5.1" - tiny-lr "0.1.4" - watch "^0.11.0" - -gulp-yaml@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/gulp-yaml/-/gulp-yaml-2.0.4.tgz#86569e2becc9f5dfc95dc92db5a71a237f4b6ab4" - integrity sha512-S/9Ib8PO+jGkCvWDwBUkmFkeW7QM0pp4PO8NNrMEfWo5Sk30P+KqpyXc4055L/vOX326T/b9MhM4nw5EenyX9g== - dependencies: - bufferstreams "^2.0.1" - js-yaml "^3.13.1" - object-assign "^4.1.1" - plugin-error "^1.0.1" - replace-ext "^1.0.0" - through2 "^3.0.0" - -gulp@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" - integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== - dependencies: - glob-watcher "^5.0.3" - gulp-cli "^2.2.0" - undertaker "^1.2.1" - vinyl-fs "^3.0.0" - -gulp@~3.8.7: - version "3.8.11" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.8.11.tgz#d557e0a7283eb4136491969b0497767972f1d28a" - integrity sha1-1Vfgpyg+tBNkkZabBJd2eXLx0oo= - dependencies: - archy "^1.0.0" - chalk "^0.5.0" - deprecated "^0.0.1" - gulp-util "^3.0.0" - interpret "^0.3.2" - liftoff "^2.0.1" - minimist "^1.1.0" - orchestrator "^0.3.0" - pretty-hrtime "^0.2.0" - semver "^4.1.0" - tildify "^1.0.0" - v8flags "^2.0.2" - vinyl-fs "^0.3.0" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= - dependencies: - glogg "^1.0.0" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" - integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= - dependencies: - ansi-regex "^0.2.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= - dependencies: - sparkles "^1.0.0" - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== - -howler@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.2.tgz#8433a09d8fe84132a3e726e05cb2bd352ef8bd49" - integrity sha512-oKrTFaVXsDRoB/jik7cEpWKTj7VieoiuzMYJ7E/EU5ayvmpRhumCv3YQ3823zi9VTJkSWAhbryHnlZAionGAJg== - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-loader@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea" - integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog== - dependencies: - es6-templates "^0.2.3" - fastparse "^1.1.1" - html-minifier "^3.5.8" - loader-utils "^1.1.0" - object-assign "^4.1.1" - -html-minifier@^3.5.20, html-minifier@^3.5.8: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-cache-semantics@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" - integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== - -http-errors@1.7.3, http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.4.tgz#e95f2e41db0735fc21652f7827a5ee32e63c83a8" - integrity sha1-6V8uQdsHNfwhZS94J6XuMuY8g6g= - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-loader@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ignore-loader/-/ignore-loader-0.1.2.tgz#d81f240376d0ba4f0d778972c3ad25874117a463" - integrity sha1-2B8kA3bQuk8Nd4lyw60lh0EXpGM= - -ignore-walk@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" - integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw== - dependencies: - minimatch "^3.0.4" - -ignore@^3.1.2: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -imagemin-gifsicle@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz#1a7ab136a144c4678657ba3b6c412f80805d26b0" - integrity sha512-LaP38xhxAwS3W8PFh4y5iQ6feoTSF+dTAXFRUEYQWYst6Xd+9L/iPk34QGgK/VO/objmIlmq9TStGfVY2IcHIA== - dependencies: - execa "^1.0.0" - gifsicle "^5.0.0" - is-gif "^3.0.0" - -imagemin-jpegtran@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/imagemin-jpegtran/-/imagemin-jpegtran-7.0.0.tgz#7728f84876362d489b9a1656e0cc8e2009406e6f" - integrity sha512-MJoyTCW8YjMJf56NorFE41SR/WkaGA3IYk4JgvMlRwguJEEd3PnP9UxA8Y2UWjquz8d+On3Ds/03ZfiiLS8xTQ== - dependencies: - exec-buffer "^3.0.0" - is-jpg "^2.0.0" - jpegtran-bin "^5.0.0" - -imagemin-mozjpeg@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz#d2ca4e8c982c7c6eda55069af89dee4c1cebcdfd" - integrity sha512-+EciPiIjCb8JWjQNr1q8sYWYf7GDCNDxPYnkD11TNIjjWNzaV+oTg4DpOPQjl5ZX/KRCPMEgS79zLYAQzLitIA== - dependencies: - execa "^1.0.0" - is-jpg "^2.0.0" - mozjpeg "^6.0.0" - -imagemin-optipng@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/imagemin-optipng/-/imagemin-optipng-7.1.0.tgz#2225c82c35e5c29b7fa98d4f9ecee1161a68e888" - integrity sha512-JNORTZ6j6untH7e5gF4aWdhDCxe3ODsSLKs/f7Grewy3ebZpl1ZsU+VUTPY4rzeHgaFA8GSWOoA8V2M3OixWZQ== - dependencies: - exec-buffer "^3.0.0" - is-png "^2.0.0" - optipng-bin "^6.0.0" - -imagemin-pngquant@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-9.0.0.tgz#f22ba4276cde1799fb15dd475e33984f8607e871" - integrity sha512-9cqnTEaJwAHWUi+8EMTB3NUouWToCWxtL+QnoYr8bfVwuKilHvRVWKsa9lt+0c3aWaGxCAkHs++j8qINvSqomA== - dependencies: - execa "^4.0.0" - is-png "^2.0.0" - is-stream "^2.0.0" - ow "^0.17.0" - pngquant-bin "^6.0.0" - -imagemin-svgo@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/imagemin-svgo/-/imagemin-svgo-7.0.0.tgz#a22d0a5917a0d0f37e436932c30f5e000fa91b1c" - integrity sha512-+iGJFaPIMx8TjFW6zN+EkOhlqcemdL7F3N3Y0wODvV2kCUBuUtZK7DRZc1+Zfu4U2W/lTMUyx2G8YMOrZntIWg== - dependencies: - is-svg "^3.0.0" - svgo "^1.0.5" - -imagemin@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-7.0.1.tgz#f6441ca647197632e23db7d971fffbd530c87dbf" - integrity sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w== - dependencies: - file-type "^12.0.0" - globby "^10.0.0" - graceful-fs "^4.2.2" - junk "^3.1.0" - make-dir "^3.0.0" - p-pipe "^3.0.0" - replace-ext "^1.0.0" - -immutable@^3: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" - integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-lazy@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" - integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== - -import-local@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - integrity sha1-4g/146KvwmkDILbcVSaCqcf631E= - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" - integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js= - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" - integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34= - dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - figures "^1.3.5" - lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - -inquirer@^6.2.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -interpret@^0.3.2: - version "0.3.10" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.3.10.tgz#088c25de731c6c5b112a90f0071cfaf459e5a7bb" - integrity sha1-CIwl3nMcbFsRKpDwBxz69Fnlp7s= - -interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -irregular-plurals@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-2.0.0.tgz#39d40f05b00f656d0b7fa471230dd3b714af2872" - integrity sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== - -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-function@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" - integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= - -is-gif@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1" - integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== - dependencies: - file-type "^10.4.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-jpg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" - integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= - -is-my-ip-valid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== - -is-my-json-valid@^2.10.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" - integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA== - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - is-my-ip-valid "^1.0.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= - -is-number-like@^1.0.3: - version "1.0.8" - resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" - integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== - dependencies: - lodash.isfinite "^3.3.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-png@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-png/-/is-png-2.0.0.tgz#ee8cbc9e9b050425cedeeb4a6fb74a649b0a4a8d" - integrity sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g== - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - -is-property@^1.0.0, is-property@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-utf8@^0.2.0, is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" - integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isbinaryfile@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@0.1.x, isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jimp@^0.6.1: - version "0.6.8" - resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.6.8.tgz#63074984337cc469cd4030946e503e7c02a18b5c" - integrity sha512-F7emeG7Hp61IM8VFbNvWENLTuHe0ghizWPuP4JS9ujx2r5mCVYEd/zdaz6M2M42ZdN41blxPajLWl9FXo7Mr2Q== - dependencies: - "@jimp/custom" "^0.6.8" - "@jimp/plugins" "^0.6.8" - "@jimp/types" "^0.6.8" - core-js "^2.5.7" - regenerator-runtime "^0.13.3" - -jpeg-js@^0.3.4: - version "0.3.6" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.6.tgz#c40382aac9506e7d1f2d856eb02f6c7b2a98b37c" - integrity sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw== - -jpegtran-bin@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/jpegtran-bin/-/jpegtran-bin-5.0.1.tgz#3cecaa471726bbcb66adabeeb544c409b17c73e5" - integrity sha512-xQoXWkIEt4ckmvcHd9xG3RcCIn00sf2TshDyFMOAE+46EspEqwqoPWotVI3e55FGWafMa9cEqaoIyrCeWDnFPw== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - -js-base64@^2.1.8, js-base64@^2.1.9: - version "2.5.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" - integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== - -js-beautify@^1.5.10: - version "1.10.2" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178" - integrity sha512-ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ== - dependencies: - config-chain "^1.1.12" - editorconfig "^0.15.3" - glob "^7.1.3" - mkdirp "~0.5.1" - nopt "~4.0.1" - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@12.2.0: - version "12.2.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-12.2.0.tgz#7cf3f5b5eafd47f8f09ca52315d367ff6e95de23" - integrity sha512-QPOggIJ8fquWPLaYYMoh+zqUmdphDtu1ju0QGTitZT1Yd8I5qenPpXM1etzUegu3MjVp8XPzgZxdn8Yj7e40ig== - dependencies: - abab "^2.0.0" - acorn "^6.0.2" - acorn-globals "^4.3.0" - array-equal "^1.0.0" - cssom "^0.3.4" - cssstyle "^1.1.1" - data-urls "^1.0.1" - domexception "^1.0.1" - escodegen "^1.11.0" - html-encoding-sniffer "^1.0.2" - nwsapi "^2.0.9" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.5" - saxes "^3.1.3" - symbol-tree "^3.2.2" - tough-cookie "^2.4.3" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - ws "^6.1.0" - xml-name-validator "^3.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -junk@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" - integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== - -just-debounce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" - integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0, kind-of@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -known-css-properties@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.11.0.tgz#0da784f115ea77c76b81536d7052e90ee6c86a8a" - integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== - -known-css-properties@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz#a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4" - integrity sha512-QMQcnKAiQccfQTqtBh/qwquGZ2XK/DXND1jrcN9M8gMMy99Gwla7GQjndVUsEqIaRyP6bsFRuhwRj5poafBGJQ== - -last-run@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" - integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= - dependencies: - default-resolution "^2.0.0" - es6-weak-map "^2.0.1" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= - dependencies: - readable-stream "^2.0.5" - -lazystream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-0.1.0.tgz#1b25d63c772a4c20f0a5ed0a9d77f484b6e16920" - integrity sha1-GyXWPHcqTCDwpe0KnXf0hLbhaSA= - dependencies: - readable-stream "~1.0.2" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= - dependencies: - flush-write-stream "^1.0.2" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -liftoff@^2.0.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" - integrity sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= - dependencies: - extend "^3.0.0" - findup-sync "^2.0.0" - fined "^1.0.1" - flagged-respawn "^1.0.0" - is-plain-object "^2.0.4" - object.map "^1.0.0" - rechoir "^0.6.2" - resolve "^1.1.7" - -liftoff@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" - integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== - dependencies: - extend "^3.0.0" - findup-sync "^3.0.0" - fined "^1.0.1" - flagged-respawn "^1.0.0" - is-plain-object "^2.0.4" - object.map "^1.0.0" - rechoir "^0.6.2" - resolve "^1.1.7" - -limiter@^1.0.5: - version "1.1.4" - resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.4.tgz#87c9c3972d389fdb0ba67a45aadbc5d2f8413bc1" - integrity sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg== - -line-column@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" - integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= - dependencies: - isarray "^1.0.0" - isobject "^2.0.0" - -load-bmfont@^1.3.1, load-bmfont@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" - integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g== - dependencies: - buffer-equal "0.0.1" - mime "^1.3.4" - parse-bmfont-ascii "^1.0.3" - parse-bmfont-binary "^1.0.5" - parse-bmfont-xml "^1.1.4" - phin "^2.9.1" - xhr "^2.0.1" - xtend "^4.0.0" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^0.2.5, loader-utils@~0.2.2, loader-utils@~0.2.3, loader-utils@~0.2.5: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.0, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -localtunnel@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.0.tgz#2ea71174fa80e34cce91b2a7ce416e6a57d9ff7c" - integrity sha512-g6E0aLgYYDvQDxIjIXkgJo2+pHj3sGg4Wz/XP3h2KtZnRsWPbOQY+hw1H8Z91jep998fkcVE9l+kghO+97vllg== - dependencies: - axios "0.19.0" - debug "4.1.1" - openurl "1.1.1" - yargs "13.3.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= - -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U= - -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= - -lodash._escapehtmlchar@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz#df67c3bb6b7e8e1e831ab48bfa0795b92afe899d" - integrity sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0= - dependencies: - lodash._htmlescapes "~2.4.1" - -lodash._escapestringchar@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz#ecfe22618a2ade50bfeea43937e51df66f0edb72" - integrity sha1-7P4iYYoq3lC/7qQ5N+Ud9m8O23I= - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= - -lodash._htmlescapes@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz#32d14bf0844b6de6f8b62a051b4f67c228b624cb" - integrity sha1-MtFL8IRLbeb4tioFG09nwii2JMs= - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= - -lodash._isnative@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" - integrity sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw= - -lodash._objecttypes@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" - integrity sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE= - -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo= - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0= - -lodash._reinterpolate@^2.4.1, lodash._reinterpolate@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz#4f1227aa5a8711fc632f5b07a1f4607aab8b3222" - integrity sha1-TxInqlqHEfxjL1sHofRgequLMiI= - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash._reunescapedhtml@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz#747c4fc40103eb3bb8a0976e571f7a2659e93ba7" - integrity sha1-dHxPxAED6zu4oJduVx96JlnpO6c= - dependencies: - lodash._htmlescapes "~2.4.1" - lodash.keys "~2.4.1" - -lodash._root@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= - -lodash._shimkeys@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" - integrity sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM= - dependencies: - lodash._objecttypes "~2.4.1" - -lodash.capitalize@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" - integrity sha1-+CbJtOKoUR2E46yinbBeGk87cqk= - -lodash.clone@^4.3.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= - -lodash.clonedeep@^4.3.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.defaults@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54" - integrity sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ= - dependencies: - lodash._objecttypes "~2.4.1" - lodash.keys "~2.4.1" - -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg= - dependencies: - lodash._root "^3.0.0" - -lodash.escape@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-2.4.1.tgz#2ce12c5e084db0a57dda5e5d1eeeb9f5d175a3b4" - integrity sha1-LOEsXghNsKV92l5dHu659dF1o7Q= - dependencies: - lodash._escapehtmlchar "~2.4.1" - lodash._reunescapedhtml "~2.4.1" - lodash.keys "~2.4.1" - -lodash.get@^4.0.0: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= - -lodash.isfinite@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" - integrity sha1-+4m2WpqAKBgz8LdHizpRBPiY67M= - -lodash.isobject@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" - integrity sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU= - dependencies: - lodash._objecttypes "~2.4.1" - -lodash.kebabcase@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.keys@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" - integrity sha1-SN6kbfj/djKxDXBrissmWR4rNyc= - dependencies: - lodash._isnative "~2.4.1" - lodash._shimkeys "~2.4.1" - lodash.isobject "~2.4.1" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.restparam@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= - -lodash.some@^4.2.2: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.template@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-2.4.1.tgz#9e611007edf629129a974ab3c48b817b3e1cf20d" - integrity sha1-nmEQB+32KRKal0qzxIuBez4c8g0= - dependencies: - lodash._escapestringchar "~2.4.1" - lodash._reinterpolate "~2.4.1" - lodash.defaults "~2.4.1" - lodash.escape "~2.4.1" - lodash.keys "~2.4.1" - lodash.templatesettings "~2.4.1" - lodash.values "~2.4.1" - -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8= - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU= - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.templatesettings@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz#ea76c75d11eb86d4dbe89a83893bb861929ac699" - integrity sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk= - dependencies: - lodash._reinterpolate "~2.4.1" - lodash.escape "~2.4.1" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash.values@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.4.1.tgz#abf514436b3cb705001627978cbcf30b1280eea4" - integrity sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ= - dependencies: - lodash.keys "~2.4.1" - -lodash@^3.0.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= - -lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.3.0, lodash@~4.17.10: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.4: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -lodash@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" - integrity sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE= - -lodash@~2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" - integrity sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4= - -logalot@^2.0.0, logalot@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" - integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= - dependencies: - figures "^1.3.5" - squeak "^1.0.0" - -longest@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lpad-align@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" - integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= - dependencies: - get-stdin "^4.0.1" - indent-string "^2.1.0" - longest "^1.0.0" - meow "^3.3.0" - -lru-cache@2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" - integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI= - -lru-cache@^4.0.1, lru-cache@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= - -make-dir@^1.0.0, make-dir@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-iterator@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" - integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== - dependencies: - kind-of "^6.0.2" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.0, map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-loader@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/markdown-loader/-/markdown-loader-5.1.0.tgz#4efd5006b1514ca966141c661a47e542a9836e6e" - integrity sha512-xtQNozLEL+55ZSPTNwro8epZqf1h7HjAZd/69zNe8lbckDiGVHeLQm849bXzocln2pwRK2A/GrW/7MAmwjcFog== - dependencies: - loader-utils "^1.2.3" - marked "^0.7.0" - -marked@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" - integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== - -matchdep@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" - integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= - dependencies: - findup-sync "^2.0.0" - micromatch "^3.0.4" - resolve "^1.4.0" - stack-trace "0.0.10" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdn-data@~1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" - integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.3.0, meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -merge@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -mime-db@^1.28.0: - version "1.41.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0" - integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== - -mime-db@~1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" - integrity sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc= - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime-types@~2.0.9: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" - integrity sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY= - dependencies: - mime-db "~1.12.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== - -mime@1.6.0, mime@^1.3.4: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.0.0, mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@0.3: - version "0.3.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" - integrity sha1-J12O2qxPG7MyZHIInnlJyDlGmd0= - dependencies: - lru-cache "2" - sigmund "~1.0.0" - -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^2.0.1: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - integrity sha1-jQh8OcazjAAbl/ynzm0OHoCvusc= - dependencies: - brace-expansion "^1.0.0" - -minimatch@~0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" - integrity sha1-x054BXT2PG+aCQ6Q775u9TpqdWo= - dependencies: - lru-cache "2" - sigmund "~1.0.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@1.1.x: - version "1.1.3" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" - integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= - -minimist@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" - integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= - -minimist@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" - integrity sha1-Tf/lJdriuGTGbC4jxicdev3s784= - -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -minipass@^2.2.1, minipass@^2.6.0, minipass@^2.6.4: - version "2.7.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.7.0.tgz#c01093a82287c8331f08f1075499fef124888796" - integrity sha512-+CbZuJ4uEiuTL9s5Z/ULkuRg1O9AvVqVvceaBrhbYHIy1R3dPO7FMmG0nZLD0//ZzZq0MUOjwdBQvk+w1JHUqQ== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.2.tgz#6f0ccc82fa53e1bf2ff145f220d2da9fa6e3a166" - integrity sha512-hR3At21uSrsjjDTWrbu0IMLTpnkpv8IIMFDFaoz43Tmu4LkmAXfH44vNNzpTnf+OAQQCHrb91y/wc2J4x5XgSQ== - dependencies: - minipass "^2.2.1" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mitt@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.3.tgz#528c506238a05dce11cd914a741ea2cc332da9b8" - integrity sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mkdirp@^0.5.3: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -mozjpeg@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/mozjpeg/-/mozjpeg-6.0.1.tgz#56969dddb5741ef2bcb1af066cae21e61a91a27b" - integrity sha512-9Z59pJMi8ni+IUvSH5xQwK5tNLw7p3dwDNCZ3o1xE+of3G5Hc/yOz6Ue/YuLiBXU3ZB5oaHPURyPdqfBX/QYJA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.1.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multipipe@^0.1.0, multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s= - dependencies: - duplexer2 "0.0.2" - -mute-stdout@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" - integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== - -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" - integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA= - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -mute-stream@~0.0.4: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1, nan@^2.13.2: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - -nanoid@^3.1.12: - version "3.1.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" - integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natives@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" - integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -needle@, needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -next-tick@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.29: - version "1.1.32" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.32.tgz#485b35c1bf9b4d8baa105d782f8ca731e518276e" - integrity sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A== - dependencies: - semver "^5.3.0" - -node-sass@^4.8.3: - version "4.12.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.12.0.tgz#0914f531932380114a30cc5fa4fa63233a25f017" - integrity sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ== - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash "^4.17.11" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.13.2" - node-gyp "^3.8.0" - npmlog "^4.0.0" - request "^2.88.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -node-sri@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/node-sri/-/node-sri-1.1.1.tgz#041096d2b11f232b65dedc4c3ae1cb62babb54b0" - integrity sha1-BBCW0rEfIytl3txMOuHLYrq7VLA= - -node.extend@^1.0.10: - version "1.1.8" - resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.8.tgz#0aab3e63789f4e6d68b42bc00073ad1881243cf0" - integrity sha512-L/dvEBwyg3UowwqOUTyDsGBU6kjBQOpOhshio9V3i3BMPv5YUb9+mWNN8MK0IbWqT0AqaTSONZf0aTuMMahWgA== - dependencies: - has "^1.0.3" - is "^3.2.1" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - -nopt@^4.0.1, nopt@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.4.1.tgz#81e9c153b0ad5743755696f2aa20488d48e962b6" - integrity sha512-rjH3yRt0Ssx19mUwS0hrDUOdG9VI+oRLpLHJ7tXRdjcuQ7v7wo6qPvOZppHRrqfslTKr0L2yBhjj4UXd7c3cQg== - -now-and-later@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" - integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== - dependencies: - once "^1.3.2" - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-packlist@^1.1.6: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nwsapi@^2.0.9: - version "2.1.4" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" - integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-assign@~0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-0.3.1.tgz#060e2a2a27d7c0d77ec77b78f11aa47fd88008d2" - integrity sha1-Bg4qKifXwNd+x3t48Rqkf9iACNI= - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object-path@^0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" - integrity sha1-D9mnT8X60a45aLWGvaXGMr1sBaU= - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.0.4, object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.defaults@^1.0.0, object.defaults@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" - integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= - dependencies: - array-each "^1.0.1" - array-slice "^1.0.0" - for-own "^1.0.0" - isobject "^3.0.0" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.map@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" - integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -object.pick@^1.2.0, object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.reduce@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" - integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - -omggif@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - -on-finished@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.1.0.tgz#0c539f09291e8ffadde0c8a25850fb2cedc7022d" - integrity sha1-DFOfCSkej/rd4MiiWFD7LO3HAi0= - dependencies: - ee-first "1.0.5" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= - dependencies: - wrappy "1" - -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -open@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" - integrity sha1-QsPhjslUZra/DcQvOilFw/DK2Pw= - -openurl@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387" - integrity sha1-OHW0sO96UsFW8NtB1GCduw+Us4c= - -opn@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - integrity sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g== - dependencies: - is-wsl "^1.1.0" - -optimist@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -optipng-bin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-6.0.0.tgz#376120fa79d5e71eee2f524176efdd3a5eabd316" - integrity sha512-95bB4y8IaTsa/8x6QH4bLUuyvyOoGBCLDA7wOgDL8UFqJpSUh1Hob8JRJhit+wC1ZLN3tQ7mFt7KuBj0x8F2Wg== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - -orchestrator@^0.3.0: - version "0.3.8" - resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" - integrity sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4= - dependencies: - end-of-stream "~0.1.5" - sequencify "~0.0.7" - stream-consume "~0.1.0" - -ordered-read-streams@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" - integrity sha1-/VZamvjrRHO6abbtijQ1LLVS8SY= - -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= - dependencies: - readable-stream "^2.0.1" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-filter-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" - integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== - dependencies: - arch "^2.1.0" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@0, osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -ow@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/ow/-/ow-0.17.0.tgz#4f938999fed6264c9048cd6254356e0f1e7f688c" - integrity sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA== - dependencies: - type-fest "^0.11.0" - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-event@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" - integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= - dependencies: - p-timeout "^1.1.1" - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" - integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= - dependencies: - p-reduce "^1.0.0" - -p-pipe@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" - integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@^1.0.5, pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parents@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= - dependencies: - path-platform "~0.11.15" - -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-author@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" - integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8= - dependencies: - author-regex "^1.0.0" - -parse-bmfont-ascii@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" - integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= - -parse-bmfont-binary@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" - integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= - -parse-bmfont-xml@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" - integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== - dependencies: - xml-parse-from-string "^1.0.0" - xml2js "^0.4.5" - -parse-filepath@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-headers@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz#9545e8a4c1ae5eaea7d24992bca890281ed26e34" - integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg== - dependencies: - for-each "^0.3.3" - string.prototype.trim "^1.1.2" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - -parseurl@~1.3.0, parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= - dependencies: - path-root-regex "^0.1.0" - -path-starts-with@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-starts-with/-/path-starts-with-2.0.0.tgz#ffd6d51926cd497022b44d392196033d5451892f" - integrity sha512-3UHTHbJz5+NLkPafFR+2ycJOjoc4WV2e9qCZCnm71zHiWaFrm1XniLVTkZXvaRgxr1xFh9JsTdicpH2yM03nLA== - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -phin@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" - integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== - -phonegap-plugin-mobile-accessibility@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/phonegap-plugin-mobile-accessibility/-/phonegap-plugin-mobile-accessibility-1.0.5.tgz#95a8754d127508bc6e1ae259a53ce765836eac03" - integrity sha1-lah1TRJ1CLxuGuJZpTznZYNurAM= - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pixelmatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" - integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= - dependencies: - pngjs "^3.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkginfo@0.3.x: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" - integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= - -plist@^3.0.0, plist@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c" - integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ== - dependencies: - base64-js "^1.2.3" - xmlbuilder "^9.0.7" - xmldom "0.1.x" - -plugin-error@1.0.1, plugin-error@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" - integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== - dependencies: - ansi-colors "^1.0.1" - arr-diff "^4.0.0" - arr-union "^3.1.0" - extend-shallow "^3.0.2" - -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - -plur@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/plur/-/plur-3.1.1.tgz#60267967866a8d811504fe58f2faaba237546a5b" - integrity sha512-t1Ax8KUvV3FFII8ltczPn2tJdjqbd1sIzu6t4JL7nQ3EyeL/lTrj5PWKb06ic5/6XYDr65rQ4uzQEGN70/6X5w== - dependencies: - irregular-plurals "^2.0.0" - -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" - integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU= - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -pngjs@^3.0.0, pngjs@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pngquant-bin@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-5.0.2.tgz#6f34f3e89c9722a72bbc509062b40f1b17cda460" - integrity sha512-OLdT+4JZx5BqE1CFJkrvomYV0aSsv6x2Bba+aWaVc0PMfWlE+ZByNKYAdKeIqsM4uvW1HOSEHnf8KcOnykPNxA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.1" - execa "^0.10.0" - logalot "^2.0.0" - -pngquant-bin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-6.0.0.tgz#aff0d7e61095feb96ced379ad8c7294ad3dd1712" - integrity sha512-oXWAS9MQ9iiDAJRdAZ9KO1mC5UwhzKkJsmetiu0iqIjJuW7JsuLhmc4JdRm7uJkIWRzIAou/Vq2VcjfJwz30Ow== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.1" - execa "^4.0.0" - logalot "^2.0.0" - -portscanner@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.1.1.tgz#eabb409e4de24950f5a2a516d35ae769343fbb96" - integrity sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y= - dependencies: - async "1.5.2" - is-number-like "^1.0.3" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-assets@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-assets/-/postcss-assets-5.0.0.tgz#f721d07d339605fb58414e9f69cf05401c54e709" - integrity sha1-9yHQfTOWBftYQU6fac8FQBxU5wk= - dependencies: - assets "^3.0.0" - bluebird "^3.5.0" - postcss "^6.0.10" - postcss-functions "^3.0.0" - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" - integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0" - -postcss-calc@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" - integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== - dependencies: - css-unit-converter "^1.1.1" - postcss "^7.0.5" - postcss-selector-parser "^5.0.0-rc.4" - postcss-value-parser "^3.3.1" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-critical-split@^2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/postcss-critical-split/-/postcss-critical-split-2.5.3.tgz#9339d3699f6363d0a3ad0952420dc9faa181363b" - integrity sha512-FDG+evU4RBGM9/LQ5nCktzFKjYH2O/SLollJwtrdGagXXbMvk620Bc9o8WpqHJnu573uxVkx9lhob1HZvSWhZg== - dependencies: - merge "^1.2.0" - postcss "^6.0.1" - -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-discard-unused@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-4.0.1.tgz#ee7cc66af8c7e8c19bd36f12d09c4bde4039abea" - integrity sha512-/3vq4LU0bLH2Lj4NYN7BTf2caly0flUB7Xtrk9a5K3yLuXMkHMqMO/x3sDq8W2b1eQFSCyY0IVz2L+0HP8kUUA== - dependencies: - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" - integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== - dependencies: - postcss "^7.0.2" - -postcss-functions@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" - integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= - dependencies: - glob "^7.1.2" - object-assign "^4.1.1" - postcss "^6.0.9" - postcss-value-parser "^3.3.0" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-initial@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.1.tgz#99d319669a13d6c06ef8e70d852f68cb1b399b61" - integrity sha512-I2Sz83ZSHybMNh02xQDK609lZ1/QOyYeuizCjzEhlMgeV/HcDJapQiH4yTqLjZss0X6/6VvKFXUeObaHpJoINw== - dependencies: - lodash.template "^4.5.0" - postcss "^7.0.2" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-idents@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-4.0.1.tgz#b7df282a92f052ea0a66c62d8f8812e6d2cbed23" - integrity sha512-43S/VNdF6II0NZ31YxcvNYq4gfURlPAAsJW/z84avBXQCaP4I4qRHUH18slW/SOlJbcxxCobflPNUApYDddS7A== - dependencies: - cssnano-util-same-parent "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.5.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-idents@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-4.0.2.tgz#30447a6ec20941e78e21bd4482a11f569c4f455b" - integrity sha512-Tz70Ri10TclPoCtFfftjFVddx3fZGUkr0dEDbIEfbYhFUOFQZZ77TEqRrU0e6TvAvF+Wa5VVzYTpFpq0uwFFzw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-round-subpixels@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-round-subpixels/-/postcss-round-subpixels-1.2.0.tgz#e21d6ac5952e185f9bdc008b94f004fe509d0a11" - integrity sha1-4h1qxZUuGF+b3ACLlPAE/lCdChE= - dependencies: - postcss "^5.0.2" - postcss-value-parser "^3.1.2" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" - integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" - integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= - dependencies: - dot-prop "^4.1.1" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-unprefix@^2.1.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/postcss-unprefix/-/postcss-unprefix-2.1.4.tgz#ab1c038ab77f068799ed36e1cbd997b51e7360a1" - integrity sha512-s+muBiGIMx3RvgPTtPBnSrfvIBHJ2Zx16QZf/VDB/sAxdYP6FIzci8d1gLh0+9psu5W6zVtCbU5micNt6Zh3cg== - dependencies: - autoprefixer "^9.4.3" - known-css-properties "^0.11.0" - normalize-range "^0.1.2" - postcss-selector-parser "^5.0.0" - postcss-value-parser "^3.3.1" - pseudo-classes "^1.0.0" - pseudo-elements "^1.1.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.1.2, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" - integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== - -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-zindex@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-4.0.1.tgz#8db6a4cec3111e5d3fd99ea70abeda61873d10c1" - integrity sha512-d/8BlQcUdEugZNRM9AdCA2V4fqREUtn/wcixLN3L6ITgc2P/FMcVVYz8QZkhItWT9NB5qr8wuN2dJCE4/+dlrA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss@^5.0.2: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1, postcss@^6.0.10, postcss@^6.0.9: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" - integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.1.tgz#c3a287dd10e4f6c84cb3791052b96a5d859c9389" - integrity sha512-9DGLSsjooH3kSNjTZUOt2eIj2ZTW0VI2PZ/3My+8TC7KIbH2OKwUlISfDsf63EP4aiRUt3XkEWMWvyJHvJelEg== - dependencies: - colorette "^1.2.1" - line-column "^1.0.2" - nanoid "^3.1.12" - source-map "^0.6.1" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -pretty-bytes@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" - integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== - -pretty-hrtime@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-0.2.2.tgz#d4fd88351e3a4741f8173af7d6a4b846f9895c00" - integrity sha1-1P2INR46R0H4Fzr31qS4RvmJXAA= - -pretty-hrtime@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= - -private@^0.1.6, private@^0.1.8, private@~0.1.5: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-polyfill@^8.1.0: - version "8.1.3" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" - integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -proxy-middleware@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/proxy-middleware/-/proxy-middleware-0.5.1.tgz#da24d5d58c1ddf13dad237c7eca503849eaea903" - integrity sha1-2iTV1Ywd3xPa0jfH7KUDhJ6uqQM= - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudo-classes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pseudo-classes/-/pseudo-classes-1.0.0.tgz#60a69b67395c36ff119c4d1c86e1981785206b96" - integrity sha1-YKabZzlcNv8RnE0chuGYF4Uga5Y= - -pseudo-elements@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pseudo-elements/-/pseudo-elements-1.1.0.tgz#9ba6dd8ac3ce1f3d7d36d4355aa3e28d08391f28" - integrity sha1-m6bdisPOHz19NtQ1WqPijQg5Hyg= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.24, psl@^1.1.28: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" - integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3, pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-2.2.4.tgz#2e9fbcd34b540e3421c924ecd01e90aa975319c8" - integrity sha1-Lp+800tUDjQhySTs0B6QqpdTGcg= - -qs@6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" - integrity sha1-HPyyXBCpsrSDBT/zn138kjOQjP4= - -qs@~2.2.3: - version "2.2.5" - resolved "https://registry.yarnpkg.com/qs/-/qs-2.2.5.tgz#1088abaf9dcc0ae5ae45b709e6c6b5888b23923c" - integrity sha1-EIirr53MCuWuRbcJ5sa1iIsjkjw= - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^6.8.1: - version "6.8.3" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.3.tgz#fd9fb7ffb068b79062b43383685611ee47777d4b" - integrity sha512-llcxWccnyaWlODe7A9hRjkvdCKamEKTh+wH8ITdTc3OhchaqUZteiSCX/2ablWHVrkVIe04dntnaZJ7BdyW0lQ== - dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.0, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.3.0.tgz#978230a156a5548f42eef14de22d0f4f610083d1" - integrity sha1-l4IwoValVI9C7vFN4i0PT2EAg9E= - dependencies: - bytes "1" - iconv-lite "0.4.4" - -raw-body@^2.3.2: - version "2.4.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== - dependencies: - bytes "3.1.0" - http-errors "1.7.3" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -rcedit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-2.0.0.tgz#dcc85d93aa91a41c1ebc5c6aa1dfc43ea28b7dad" - integrity sha512-XcFGyEBjhWSsud+R8elwQtGBbVkCf7tAiad+nXo5jc6l2rMf46NfGNwjnmBNneBIZDfq+Npf8lwP371JTONfrw== - -rcfinder@^0.1.6: - version "0.1.9" - resolved "https://registry.yarnpkg.com/rcfinder/-/rcfinder-0.1.9.tgz#f3e80f387ddf9ae80ae30a4100329642eae81115" - integrity sha1-8+gPOH3fmugK4wpBADKWQuroERU= - dependencies: - lodash.clonedeep "^4.3.2" - -rcloader@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/rcloader/-/rcloader-0.1.4.tgz#d0c902f0444983a2ee5a6907937c6a79ca704509" - integrity sha1-0MkC8ERJg6LuWmkHk3xqecpwRQk= - dependencies: - lodash "^3.0.1" - rcfinder "^0.1.6" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= - dependencies: - mute-stream "~0.0.4" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -"readable-stream@2 || 3": - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.2, readable-stream@~1.0.24, readable-stream@~1.0.26: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^1.0.27-1, readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.5.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - -recast@~0.11.12: - version "0.11.23" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" - integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= - dependencies: - ast-types "0.9.6" - esprima "~3.1.0" - private "~0.1.5" - source-map "~0.5.0" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== - dependencies: - private "^0.1.6" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp-tree@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f" - integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpu-core@^4.5.4: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" - integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= - -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -replace-homedir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" - integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= - dependencies: - homedir-polyfill "^1.0.1" - is-absolute "^1.0.0" - remove-trailing-separator "^1.1.0" - -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== - dependencies: - lodash "^4.17.11" - -request-promise-native@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== - dependencies: - request-promise-core "1.1.2" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.87.0, request@^2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -require-uncached@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= - dependencies: - value-or-function "^3.0.0" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.15.1, resolve@^1.4.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resp-modifier@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f" - integrity sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08= - dependencies: - debug "^2.2.0" - minimatch "^3.0.2" - -responselike@1.0.2, responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@2, rimraf@^2.4.0, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@2.6.3, rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b" - integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k= - dependencies: - once "^1.3.0" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rusha@^0.8.13: - version "0.8.13" - resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz#9a084e7b860b17bff3015b92c67a6a336191513a" - integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo= - -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI= - -rx@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= - -rxjs@^5.5.6: - version "5.5.12" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" - integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== - dependencies: - symbol-observable "1.0.1" - -rxjs@^6.4.0: - version "6.5.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" - integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-filename@^1.6.0, sanitize-filename@^1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" - integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^7.0.0" - -sass-lint@^1.12.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.13.1.tgz#5fd2b2792e9215272335eb0f0dc607f61e8acc8f" - integrity sha512-DSyah8/MyjzW2BWYmQWekYEKir44BpLqrCFsgs9iaWiVTcwZfwXHF586hh3D1n+/9ihUNMfd8iHAyb9KkGgs7Q== - dependencies: - commander "^2.8.1" - eslint "^2.7.0" - front-matter "2.1.2" - fs-extra "^3.0.1" - glob "^7.0.0" - globule "^1.0.0" - gonzales-pe-sl "^4.2.3" - js-yaml "^3.5.4" - known-css-properties "^0.3.0" - lodash.capitalize "^4.1.0" - lodash.kebabcase "^4.0.0" - merge "^1.2.0" - path-is-absolute "^1.0.0" - util "^0.10.3" - -sass-unused@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/sass-unused/-/sass-unused-0.3.0.tgz#69924e4996d6c96840fb3a99e0a0290516811a9f" - integrity sha512-fGNcUpDeSFwnN+BTQ251iM77Py8awPXc96vSE3TpvMcgbC90IrohonRb4oxWX/KzHpezkmUddS8/t04R+yIB8w== - dependencies: - glob "^7.0.5" - gonzales-pe "^4.2.3" - -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^3.1.3: - version "3.1.11" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" - integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== - dependencies: - xmlchars "^2.1.1" - -schema-utils@^0.4.0: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" - integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== - dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" - -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - -seek-bzip@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w= - dependencies: - commander "~2.8.1" - -semver-greatest-satisfied-range@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" - integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= - dependencies: - sver-compat "^1.5.0" - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== - -semver-truncate@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" - integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= - dependencies: - semver "^5.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^4.1.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -sequencify@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" - integrity sha1-kM/xnQLgcCf9dn9erT57ldHnOAw= - -serialize-error@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-3.0.0.tgz#80100282b09be33c611536f50033481cb9cc87cf" - integrity sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A== - -serialize-javascript@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" - integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.0" - -serve-index@1.9.1, serve-index@^1.1.4: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -serve-static@^1.3.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -server-destroy@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" - integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shelljs@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" - integrity sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg= - -sigmund@^1.0.1, sigmund@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= - -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-client@^2.0.4: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@~0.5.12: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.1.38: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= - dependencies: - amdefine ">=0.0.4" - -sparkles@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" - integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -squeak@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" - integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= - dependencies: - chalk "^1.0.0" - console-stream "^0.1.1" - lpad-align "^1.0.1" - -ssh2-streams@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.2.1.tgz#9c9c9964be60e9644575af328677f64b1e5cbd79" - integrity sha512-3zCOsmunh1JWgPshfhKmBCL3lUtHPoh+a/cyQ49Ft0Q0aF7xgN06b76L+oKtFi0fgO57FLjFztb1GlJcEZ4a3Q== - dependencies: - asn1 "~0.2.0" - semver "^5.1.0" - streamsearch "~0.1.2" - -ssh2@~0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-0.6.2.tgz#b065d6e2133a2d4b557447d613b3511cb15e3a2e" - integrity sha512-DJ+dOhXEEsmNpcQTI0x69FS++JH6qqL/ltEHf01pI1SSLMAcmD+hL4jRwvHjPwynPsmSUbHJ/WIZYzROfqZWjA== - dependencies: - ssh2-streams "~0.2.0" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-trace@0.0.10, stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== - -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - -stream-consume@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" - integrity sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg== - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-exhaust@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" - integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -stream-throttle@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3" - integrity sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM= - dependencies: - commander "^2.2.0" - limiter "^1.0.5" - -streamsearch@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - -strictdom@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strictdom/-/strictdom-1.0.1.tgz#189de91649f73d44d59b8432efa68ef9d2659460" - integrity sha1-GJ3pFkn3PUTVm4Qy76aO+dJllGA= - -string-replace-webpack-plugin@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/string-replace-webpack-plugin/-/string-replace-webpack-plugin-0.1.3.tgz#73c657e759d66cfe80ae1e0cf091aa256d0e715c" - integrity sha1-c8ZX51nWbP6Arh4M8JGqJW0OcVw= - dependencies: - async "~0.2.10" - loader-utils "~0.2.3" - optionalDependencies: - css-loader "^0.9.1" - file-loader "^0.8.1" - style-loader "^0.8.3" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trim@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" - integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.13.0" - function-bind "^1.1.1" - -string.prototype.trimleft@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string.prototype.trimright@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" - integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= - dependencies: - ansi-regex "^0.2.1" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" - integrity sha1-hbiGLzhEtabV7IRnqTWYFzo295Q= - dependencies: - first-chunk-stream "^1.0.0" - is-utf8 "^0.2.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-json-comments@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== - -strip-json-comments@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E= - -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -style-loader@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.8.3.tgz#f4f92eb7db63768748f15065cd6700f5a1c85357" - integrity sha1-9Pkut9tjdodI8VBlzWcA9aHIU1c= - dependencies: - loader-utils "^0.2.5" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -sumchecker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.0.tgz#da5457b4605184575c76540e5e99cc777cb8ce4c" - integrity sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ== - dependencies: - debug "^4.1.0" - -supports-color@6.1.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" - integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -sver-compat@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" - integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= - dependencies: - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - -svgo@^1.0.0, svgo@^1.0.5: - version "1.3.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" - integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.33" - csso "^3.5.1" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-observable@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" - integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= - -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" - integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8= - dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -tar-stream@~0.4.0: - version "0.4.7" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-0.4.7.tgz#1f1d2ce9ebc7b42765243ca0e8f1b7bfda0aadcd" - integrity sha1-Hx0s6evHtCdlJDyg6PG3v9oKrc0= - dependencies: - bl "^0.9.0" - end-of-stream "^1.0.0" - readable-stream "^1.0.27-1" - xtend "^4.0.0" - -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -tar@^4: - version "4.4.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.11.tgz#7ac09801445a3cf74445ed27499136b5240ffb73" - integrity sha512-iI4zh3ktLJKaDNZKZc+fUONiQrSn9HkCFzamtb7k8FFmVilHVob7QsLX/VySAW8lAviMzMbFw4QtFb4errwgYA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.6.4" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= - -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" - integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - -ternary-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ternary-stream/-/ternary-stream-3.0.0.tgz#7951930ea9e823924d956f03d516151a2d516253" - integrity sha512-oIzdi+UL/JdktkT+7KU5tSIQjj8pbShj3OASuvDEhm0NT5lppsm7aXWAmAq4/QMaBIyfuEcNLbAQA+HpaISobQ== - dependencies: - duplexify "^4.1.1" - fork-stream "^0.0.4" - merge-stream "^2.0.0" - through2 "^3.0.1" - -terser-webpack-plugin@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^1.7.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" - integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^3.1.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.0.0, terser@^4.1.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz#09820bcb3398299c4b48d9a86aefc65127d0ed65" - integrity sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -text-table@^0.2.0, text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -tfunk@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.1.0.tgz#38e4414fc64977d87afdaa72facb6d29f82f7b5b" - integrity sha1-OORBT8ZJd9h6/apy+sttKfgve1s= - dependencies: - chalk "^1.1.1" - object-path "^0.9.0" - -through2-concurrent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-concurrent/-/through2-concurrent-2.0.0.tgz#c9dd2c146504ec9962dbc86a5168b63d662669fa" - integrity sha512-R5/jLkfMvdmDD+seLwN7vB+mhbqzWop5fAjx5IX8/yQq7VhBhzDmhXgaHAOnhnWkCpRMM7gToYHycB0CS/pd+A== - dependencies: - through2 "^2.0.0" - -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@*, through2@3.0.1, through2@^3.0.0, through2@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== - dependencies: - readable-stream "2 || 3" - -through2@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through2@^0.4.1, through2@~0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" - integrity sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s= - dependencies: - readable-stream "~1.0.17" - xtend "~2.1.1" - -through2@^0.5.0, through2@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7" - integrity sha1-390BLrnHAOIyP9M084rGIqs3Lac= - dependencies: - readable-stream "~1.0.17" - xtend "~3.0.0" - -through2@^0.6.1, through2@~0.6.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - -through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.3.0.tgz#2d1d28c8d1daf8d9c5cb78f0a69343c6b8642d97" - integrity sha1-LR0oyNHa+NnFy3jwppNDxrhkLZc= - dependencies: - readable-stream "~1.0.17" - xtend "~2.1.1" - -through@^2.3.6, through@^2.3.8, through@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tildify@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" - integrity sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo= - dependencies: - os-homedir "^1.0.0" - -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -timm@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" - integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-lr@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.1.4.tgz#6e41d7e67dfd0878e5e0b37e37a06d67e309ff4d" - integrity sha1-bkHX5n39CHjl4LN+N6BtZ+MJ/00= - dependencies: - body-parser "~1.8.0" - debug "~0.8.1" - faye-websocket "~0.7.2" - parseurl "~1.3.0" - qs "~2.2.3" - -tinycolor2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" - integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= - -tmp-promise@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz#bb924d239029157b9bc1d506a6aa341f8b13e64c" - integrity sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw== - dependencies: - bluebird "^3.5.0" - tmp "0.1.0" - -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= - dependencies: - through2 "^2.0.3" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@^2.3.3, tough-cookie@^2.4.3: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -trim@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - -tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-is@~1.5.1: - version "1.5.7" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.5.7.tgz#b9368a593cc6ef7d0645e78b2f4c64cbecd05e90" - integrity sha1-uTaKWTzG730GReeLL0xky+zQXpA= - dependencies: - media-typer "0.3.0" - mime-types "~2.0.9" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -ua-parser-js@^0.7.18: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== - -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -uglify-template-string-loader@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/uglify-template-string-loader/-/uglify-template-string-loader-1.1.1.tgz#d091d15f66b65f1cae2f4222583009302c86339f" - integrity sha512-EHJx8m0aIHlwX5xlJd2xPYIFvLrPkVK5X8zpVxSNTmu7KoT2eSg1TNlwZS+JS65+dwJXC4rC5mc+F4UVe2rckw== - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -unbzip2-stream@^1.0.9: - version "1.3.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" - integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -underscore@~1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" - integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= - -undertaker-registry@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" - integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= - -undertaker@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" - integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== - dependencies: - arr-flatten "^1.0.1" - arr-map "^2.0.0" - bach "^1.0.0" - collection-map "^1.0.0" - es6-weak-map "^2.0.1" - last-run "^1.1.0" - object.defaults "^1.0.0" - object.reduce "^1.0.0" - undertaker-registry "^1.0.0" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unique-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" - integrity sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs= - -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" - integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unused-files-webpack-plugin@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/unused-files-webpack-plugin/-/unused-files-webpack-plugin-3.4.0.tgz#adc67a3b5549d028818d3119cbf2b5c88aea8670" - integrity sha512-cmukKOBdIqaM1pqThY0+jp+mYgCVyzrD8uRbKEucQwIGZcLIRn+gSRiQ7uLjcDd3Zba9NUxVGyYa7lWM4UCGeg== - dependencies: - babel-runtime "^7.0.0-beta.3" - glob-all "^3.1.0" - semver "^5.5.0" - util.promisify "^1.0.0" - warning "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= - -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= - dependencies: - os-homedir "^1.0.0" - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - -utif@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" - integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== - dependencies: - pako "^1.0.5" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@^1.0.0, util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1, uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== - -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== - -v8flags@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= - dependencies: - user-home "^1.1.1" - -v8flags@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" - integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== - dependencies: - homedir-polyfill "^1.0.1" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= - -vendors@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" - integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vinyl-buffer@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/vinyl-buffer/-/vinyl-buffer-0.0.0.tgz#d197a824badcb11cccf9643ac91be24d43eda8db" - integrity sha1-0ZeoJLrcsRzM+WQ6yRviTUPtqNs= - dependencies: - bl "^0.7.0" - through2 "^0.4.1" - -vinyl-fs@^0.3.0: - version "0.3.14" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" - integrity sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY= - dependencies: - defaults "^1.0.0" - glob-stream "^3.1.5" - glob-watcher "^0.0.6" - graceful-fs "^3.0.0" - mkdirp "^0.5.0" - strip-bom "^1.0.0" - through2 "^0.6.1" - vinyl "^0.4.0" - -vinyl-fs@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" - integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-source-stream@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-0.1.1.tgz#a53a4f21a07a234695e04c2703f9f1b5b9084595" - integrity sha1-pTpPIaB6I0aV4EwnA/nxtbkIRZU= - dependencies: - through2 "~0.3.0" - vinyl "~0.2.2" - -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" - integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= - dependencies: - source-map "^0.5.1" - -vinyl@*, vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -vinyl@^0.2.1, vinyl@~0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.2.3.tgz#bca938209582ec5a49ad538a00fa1f125e513252" - integrity sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI= - dependencies: - clone-stats "~0.0.1" - -vinyl@^0.4.0: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - integrity sha1-LzVsh6VQolVGHza76ypbqL94SEc= - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4= - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vm-browserify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== - -w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= - dependencies: - browser-process-hrtime "^0.1.2" - -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= - dependencies: - loose-envify "^1.0.0" - -watch@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.11.0.tgz#e8dba091b7456799a3af57978b986e77e1320406" - integrity sha1-6NugkbdFZ5mjr1eXi5hud+EyBAY= - -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.0" - watchpack-chokidar2 "^2.0.0" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webpack-cli@^3.1.0: - version "3.3.9" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz#79c27e71f94b7fe324d594ab64a8e396b9daa91a" - integrity sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" - -webpack-deep-scope-plugin@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/webpack-deep-scope-plugin/-/webpack-deep-scope-plugin-1.6.2.tgz#131eac79739021e42ebc07066ea8869107f37b85" - integrity sha512-S5ZM1i7oTIVPIS1z/Fu41tqFzaXpy8vZnwEDC9I7NLj5XD8GGrDZbDXtG5FCGkHPGxtAzF4O21DKZZ76vpBGzw== - dependencies: - deep-scope-analyser "^1.7.0" - -webpack-plugin-replace@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/webpack-plugin-replace/-/webpack-plugin-replace-1.2.0.tgz#3f20db96237400433231e35ea76d9be3f7128916" - integrity sha512-1HA3etHpJW55qonJqv84o5w5GY7iqF8fqSHpTWdNwarj1llkkt4jT4QSvYs1hoaU8Lu5akDnq/spHHO5mXwo1w== - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-stream@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/webpack-stream/-/webpack-stream-5.2.1.tgz#35c992161399fe8cad9c10d4a5c258f022629b39" - integrity sha512-WvyVU0K1/VB1NZ7JfsaemVdG0PXAQUqbjUNW4A58th4pULvKMQxG+y33HXTL02JvD56ko2Cub+E2NyPwrLBT/A== - dependencies: - fancy-log "^1.3.3" - lodash.clone "^4.3.2" - lodash.some "^4.2.2" - memory-fs "^0.4.1" - plugin-error "^1.0.1" - supports-color "^5.5.0" - through "^2.3.8" - vinyl "^2.1.0" - webpack "^4.26.1" - -webpack-strip-block@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/webpack-strip-block/-/webpack-strip-block-0.2.0.tgz#c60d4a703e0eeee8895e7f1abe9b5fe914681470" - integrity sha1-xg1KcD4O7uiJXn8avptf6RRoFHA= - dependencies: - loader-utils "^1.1.0" - -webpack@^4.26.1, webpack@^4.43.0: - version "4.43.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" - webpack-sources "^1.4.1" - -websocket-driver@>=0.3.6: - version "0.7.3" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== - dependencies: - http-parser-js ">=0.4.0 <0.4.11" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== - -whatwg-mimetype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" - integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@1, which@^1.1.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -winston@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/winston/-/winston-1.0.2.tgz#351c58e2323f8a4ca29a45195aa9aa3b4c35d76f" - integrity sha1-NRxY4jI/ikyimkUZWqmqO0w1128= - dependencies: - async "~1.0.0" - colors "1.0.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - pkginfo "0.3.x" - stack-trace "0.0.x" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -worker-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac" - integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== - dependencies: - loader-utils "^1.0.0" - schema-utils "^0.4.0" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" - -ws@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" - -xhr@^2.0.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xml-parse-from-string@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" - integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= - -xml2js@^0.4.5: - version "0.4.22" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz#4fa2d846ec803237de86f30aa9b5f70b6600de02" - integrity sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw== - dependencies: - sax ">=0.6.0" - util.promisify "~1.0.0" - xmlbuilder "~11.0.0" - -xmlbuilder@^9.0.7: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlchars@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmldom@0.1.x: - version "0.1.27" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" - integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - -xtend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" - integrity sha1-XM50B7r2Qsunvs2laBEcST9ZZlo= - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== - -yaml-loader@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/yaml-loader/-/yaml-loader-0.6.0.tgz#fe1c48b9f4803dace55a59a1474e790ba6ab1b48" - integrity sha512-1bNiLelumURyj+zvVHOv8Y3dpCri0F2S+DCcmps0pA1zWRLjS+FhZQg4o3aUUDYESh73+pKZNI18bj7stpReow== - dependencies: - loader-utils "^1.4.0" - yaml "^1.8.3" - -yaml@^1.8.3: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yargs-parser@5.0.0-security.0: - version "5.0.0-security.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz#4ff7271d25f90ac15643b86076a2ab499ec9ee24" - integrity sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ== - dependencies: - camelcase "^3.0.0" - object.assign "^4.1.0" - -yargs-parser@^13.0.0, yargs-parser@^13.1.0: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.1.1: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= - dependencies: - camelcase "^3.0.0" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - -yargs@13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" - -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - -yargs@^7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.1.tgz#67f0ef52e228d4ee0d6311acede8850f53464df6" - integrity sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g== - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "5.0.0-security.0" - -yargs@~1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" - integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= - dependencies: - minimist "^0.1.0" - -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - -zip-stream@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-0.4.1.tgz#4ea795a8ce19e9fab49a31d1d0877214159f03a3" - integrity sha1-TqeVqM4Z6fq0mjHR0IdyFBWfA6M= - dependencies: - compress-commons "~0.1.0" - lodash "~2.4.1" - readable-stream "~1.0.26" +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/core@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.9.0", "@babel/generator@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz" + integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== + dependencies: + "@babel/types" "^7.9.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz" + integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.9.5" + +"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4", "@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.0.0", "@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/helper-simple-access@^7.1.0", "@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.4.4", "@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-dynamic-import@^7.5.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz" + integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz" + integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.5.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz" + integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.4.4", "@babel/plugin-transform-block-scoping@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz" + integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz" + integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-transform-duplicate-keys@^7.5.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz" + integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.5.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz" + integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz" + integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== + dependencies: + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.5.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz" + integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.6.0": + version "7.6.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz" + integrity sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew== + dependencies: + regexp-tree "^0.1.13" + +"@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + +"@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== + dependencies: + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-regenerator@^7.4.5": + version "7.4.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz" + integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/preset-env@^7.5.4": + version "7.6.0" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.0.tgz" + integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.6.0" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.6.0" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" + "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.6.0" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/runtime@^7.5.5": + version "7.9.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.1.0", "@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz" + integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.5" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz" + integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== + dependencies: + "@babel/helper-validator-identifier" "^7.9.5" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@electron/get@^1.3.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@electron/get/-/get-1.5.0.tgz" + integrity sha512-tafxBz6n08G6SX961F/h8XFtpB/DdwRvJJoDeOH9x78jDSCMQ2G/rRWqSwLFp9oeMFBJf0Pf5Kkw6TKt5w9TWg== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + sanitize-filename "^1.6.2" + sumchecker "^3.0.0" + +"@jimp/bmp@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.8.tgz" + integrity sha512-uxVgSkI62uAzk5ZazYHEHBehow590WAkLKmDXLzkr/XP/Hv2Fx1T4DKwJ/15IY5ktq5VAhAUWGXTyd8KWFsx7w== + dependencies: + "@jimp/utils" "^0.6.8" + bmp-js "^0.1.0" + core-js "^2.5.7" + +"@jimp/core@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/core/-/core-0.6.8.tgz" + integrity sha512-JOFqBBcSNiDiMZJFr6OJqC6viXj5NVBQISua0eacoYvo4YJtTajOIxC4MqWyUmGrDpRMZBR8QhSsIOwsFrdROA== + dependencies: + "@jimp/utils" "^0.6.8" + any-base "^1.1.0" + buffer "^5.2.0" + core-js "^2.5.7" + exif-parser "^0.1.12" + file-type "^9.0.0" + load-bmfont "^1.3.1" + mkdirp "0.5.1" + phin "^2.9.1" + pixelmatch "^4.0.2" + tinycolor2 "^1.4.1" + +"@jimp/custom@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/custom/-/custom-0.6.8.tgz" + integrity sha512-FrYlzZRVXP2vuVwd7Nc2dlK+iZk4g6IaT1Ib8Z6vU5Kkwlt83FJIPJ2UUFABf3bF5big0wkk8ZUihWxE4Nzdng== + dependencies: + "@jimp/core" "^0.6.8" + core-js "^2.5.7" + +"@jimp/gif@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/gif/-/gif-0.6.8.tgz" + integrity sha512-yyOlujjQcgz9zkjM5ihZDEppn9d1brJ7jQHP5rAKmqep0G7FU1D0AKcV+Ql18RhuI/CgWs10wAVcrQpmLnu4Yw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + omggif "^1.0.9" + +"@jimp/jpeg@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.6.8.tgz" + integrity sha512-rGtXbYpFXAn471qLpTGvhbBMNHJo5KiufN+vC5AWyufntmkt5f0Ox2Cx4ijuBMDtirZchxbMLtrfGjznS4L/ew== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + jpeg-js "^0.3.4" + +"@jimp/plugin-blit@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.6.8.tgz" + integrity sha512-7Tl6YpKTSpvwQbnGNhsfX2zyl3jRVVopd276Y2hF2zpDz9Bycow7NdfNU/4Nx1jaf96X6uWOtSVINcQ7rGd47w== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-blur@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.6.8.tgz" + integrity sha512-NpZCMKxXHLDQsX9zPlWtpMA660DQStY6/z8ZetyxCDbqrLe9YCXpeR4MNhdJdABIiwTm1W5FyFF4kp81PHJx3Q== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-color@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.6.8.tgz" + integrity sha512-jjFyU0zNmGOH2rjzHuOMU4kaia0oo82s/7UYfn5h7OUkmUZTd6Do3ZSK1PiXA7KR+s4B76/Omm6Doh/0SGb7BQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + tinycolor2 "^1.4.1" + +"@jimp/plugin-contain@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.6.8.tgz" + integrity sha512-p/P2wCXhAzbmEgXvGsvmxLmbz45feF6VpR4m9suPSOr8PC/i/XvTklTqYEUidYYAft4vHgsYJdS74HKSMnH8lw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-cover@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.6.8.tgz" + integrity sha512-2PvWgk+PJfRsfWDI1G8Fpjrsu0ZlpNyZxO2+fqWlVo6y/y2gP4v08FqvbkcqSjNlOu2IDWIFXpgyU0sTINWZLg== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-crop@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.6.8.tgz" + integrity sha512-CbrcpWE2xxPK1n/JoTXzhRUhP4mO07mTWaSavenCg664oQl/9XCtL+A0FekuNHzIvn4myEqvkiTwN7FsbunS/Q== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-displace@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.6.8.tgz" + integrity sha512-RmV2bPxoPE6mrPxtYSPtHxm2cGwBQr5a2p+9gH6SPy+eUMrbGjbvjwKNfXWUYD0leML+Pt5XOmAS9pIROmuruQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-dither@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.6.8.tgz" + integrity sha512-x6V/qjxe+xypjpQm7GbiMNqci1EW5UizrcebOhHr8AHijOEqHd2hjXh5f6QIGfrkTFelc4/jzq1UyCsYntqz9Q== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-flip@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.6.8.tgz" + integrity sha512-4il6Da6G39s9MyWBEee4jztEOUGJ40E6OlPjkMrdpDNvge6hYEAB31BczTYBP/CEY74j4LDSoY5LbcU4kv06yA== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-gaussian@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.6.8.tgz" + integrity sha512-pVOblmjv7stZjsqloi4YzHVwAPXKGdNaHPhp4KP4vj41qtc6Hxd9z/+VWGYRTunMFac84gUToe0UKIXd6GhoKw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-invert@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.6.8.tgz" + integrity sha512-11zuLiXDHr6tFv4U8aieXqNXQEKbDbSBG/h+X62gGTNFpyn8EVPpncHhOqrAFtZUaPibBqMFlNJ15SzwC7ExsQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-mask@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.6.8.tgz" + integrity sha512-hZJ0OiKGJyv7hDSATwJDkunB1Ie80xJnONMgpUuUseteK45YeYNBOiZVUe8vum8QI1UwavgBzcvQ9u4fcgXc9g== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-normalize@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.6.8.tgz" + integrity sha512-Q4oYhU+sSyTJI7pMZlg9/mYh68ujLfOxXzQGEXuw0sHGoGQs3B0Jw7jmzGa6pIS06Hup5hD2Zuh1ppvMdjJBfQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-print@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.6.8.tgz" + integrity sha512-2aokejGn4Drv1FesnZGqh5KEq0FQtR0drlmtyZrBH+r9cx7hh0Qgf4D1BOTDEgXkfSSngjGRjKKRW/fwOrVXYw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + load-bmfont "^1.4.0" + +"@jimp/plugin-resize@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.6.8.tgz" + integrity sha512-27nPh8L1YWsxtfmV/+Ub5dOTpXyC0HMF2cu52RQSCYxr+Lm1+23dJF70AF1poUbUe+FWXphwuUxQzjBJza9UoA== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-rotate@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.6.8.tgz" + integrity sha512-GbjETvL05BDoLdszNUV4Y0yLkHf177MnqGqilA113LIvx9aD0FtUopGXYfRGVvmtTOTouoaGJUc+K6qngvKxww== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-scale@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.6.8.tgz" + integrity sha512-GzIYWR/oCUK2jAwku23zt19V1ssaEU4pL0x2XsLNKuuJEU6DvEytJyTMXCE7OLG/MpDBQcQclJKHgiyQm5gIOQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugins@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.6.8.tgz" + integrity sha512-fMcTI72Vn/Lz6JftezTURmyP5ml/xGMe0Ljx2KRJ85IWyP33vDmGIUuutFiBEbh2+y7lRT+aTSmjs0QGa/xTmQ== + dependencies: + "@jimp/plugin-blit" "^0.6.8" + "@jimp/plugin-blur" "^0.6.8" + "@jimp/plugin-color" "^0.6.8" + "@jimp/plugin-contain" "^0.6.8" + "@jimp/plugin-cover" "^0.6.8" + "@jimp/plugin-crop" "^0.6.8" + "@jimp/plugin-displace" "^0.6.8" + "@jimp/plugin-dither" "^0.6.8" + "@jimp/plugin-flip" "^0.6.8" + "@jimp/plugin-gaussian" "^0.6.8" + "@jimp/plugin-invert" "^0.6.8" + "@jimp/plugin-mask" "^0.6.8" + "@jimp/plugin-normalize" "^0.6.8" + "@jimp/plugin-print" "^0.6.8" + "@jimp/plugin-resize" "^0.6.8" + "@jimp/plugin-rotate" "^0.6.8" + "@jimp/plugin-scale" "^0.6.8" + core-js "^2.5.7" + timm "^1.6.1" + +"@jimp/png@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/png/-/png-0.6.8.tgz" + integrity sha512-JHHg/BZ7KDtHQrcG+a7fztw45rdf7okL/YwkN4qU5FH7Fcrp41nX5QnRviDtD9hN+GaNC7kvjvcqRAxW25qjew== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + pngjs "^3.3.3" + +"@jimp/tiff@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.6.8.tgz" + integrity sha512-iWHbxd+0IKWdJyJ0HhoJCGYmtjPBOusz1z1HT/DnpePs/Lo3TO4d9ALXqYfUkyG74ZK5jULZ69KLtwuhuJz1bg== + dependencies: + core-js "^2.5.7" + utif "^2.0.1" + +"@jimp/types@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/types/-/types-0.6.8.tgz" + integrity sha512-vCZ/Cp2osy69VP21XOBACfHI5HeR60Rfd4Jidj4W73UL+HrFWOtyQiJ7hlToyu1vI5mR/NsUQpzyQvz56ADm5A== + dependencies: + "@jimp/bmp" "^0.6.8" + "@jimp/gif" "^0.6.8" + "@jimp/jpeg" "^0.6.8" + "@jimp/png" "^0.6.8" + "@jimp/tiff" "^0.6.8" + core-js "^2.5.7" + timm "^1.6.1" + +"@jimp/utils@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/utils/-/utils-0.6.8.tgz" + integrity sha512-7RDfxQ2C/rarNG9iso5vmnKQbcvlQjBIlF/p7/uYj72WeZgVCB+5t1fFBKJSU4WhniHX4jUMijK+wYGE3Y3bGw== + dependencies: + core-js "^2.5.7" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/cordova@^0.0.34": + version "0.0.34" + resolved "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz" + integrity sha1-6nrd907Ow9dimCegw54smt3HPQQ= + +"@types/filesystem@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz" + integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== + dependencies: + "@types/filewriter" "*" + +"@types/filewriter@*": + version "0.0.28" + resolved "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz" + integrity sha1-wFTor02d11205jq8dviFFocU1LM= + +"@types/glob@^7.1.1": + version "7.1.2" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz" + integrity sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*", "@types/node@^12.7.5": + version "12.7.5" + resolved "https://registry.npmjs.org/@types/node/-/node-12.7.5.tgz" + integrity sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.1.tgz" + integrity sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw== + +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4: + version "1.3.7" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.3.0: + version "4.3.4" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= + dependencies: + acorn "^3.0.4" + +acorn-jsx@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz" + integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^5.5.0: + version "5.7.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7, acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz" + integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^4.7.0: + version "4.11.8" + resolved "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz" + integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5, ajv@^6.9.1: + version "6.12.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== + dependencies: + ansi-wrap "^0.1.0" + +ansi-colors@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz" + integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= + dependencies: + ansi-wrap "0.1.0" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz" + integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= + dependencies: + ansi-wrap "0.1.0" + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz" + integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" + integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" + integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + +any-base@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" + integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz" + integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= + dependencies: + buffer-equal "^1.0.0" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz" + integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== + +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz" + integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= + dependencies: + file-type "^4.2.0" + +archiver@~0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/archiver/-/archiver-0.11.0.tgz" + integrity sha1-mBd9p6bAGSt/J5jzDNbquKvXZpA= + dependencies: + async "~0.9.0" + buffer-crc32 "~0.2.1" + glob "~3.2.6" + lazystream "~0.1.0" + lodash "~2.4.1" + readable-stream "~1.0.26" + tar-stream "~0.4.0" + zip-stream "~0.4.0" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz" + integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz" + integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + dependencies: + make-iterator "^1.0.0" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz" + integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + dependencies: + make-iterator "^1.0.0" + +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz" + integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= + +array-each@^1.0.0, array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz" + integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" + integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-uniq@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-2.1.0.tgz" + integrity sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +asar@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/asar/-/asar-2.0.1.tgz" + integrity sha512-Vo9yTuUtyFahkVMFaI6uMuX6N7k5DWa6a/8+7ov0/f8Lq9TVR0tUjzSzxQSxT1Y+RJIZgnP7BVb6Uhi+9cjxqA== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^2.20.0" + cuint "^0.2.2" + glob "^7.1.3" + minimatch "^3.0.4" + mkdirp "^0.5.1" + tmp-promise "^1.0.5" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.0, asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assets@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/assets/-/assets-3.0.1.tgz" + integrity sha512-fTyLNf/9V24y5zO83f4DAEuvaKj7MWBixbnqdZneAhsv1r21yQ/6ogZfvXHmphJAHsz4DhuOwHeJKVbGqqvk0Q== + dependencies: + async "^2.5.0" + bluebird "^3.4.6" + calipers "^2.0.0" + calipers-gif "^2.0.0" + calipers-jpeg "^2.0.0" + calipers-png "^2.0.0" + calipers-svg "^2.0.0" + calipers-webp "^2.0.0" + glob "^7.0.6" + lodash "^4.15.0" + mime "^2.4.0" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz" + integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.2" + resolved "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + +async-each-series@0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz" + integrity sha1-dhfBkXQB/Yykooqtzj266Yr+tDI= + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz" + integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= + dependencies: + async-done "^1.2.2" + +async@1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +async@>=0.2.9, async@~0.9.0: + version "0.9.2" + resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +async@^2.5.0: + version "2.6.3" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +async@~0.2.10: + version "0.2.10" + resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz" + integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= + +async@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/async/-/async-1.0.0.tgz" + integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +audiosprite@*, audiosprite@^0.7.2: + version "0.7.2" + resolved "https://registry.npmjs.org/audiosprite/-/audiosprite-0.7.2.tgz" + integrity sha512-9Z6UwUuv4To5nUQNRIw5/Q3qA7HYm0ANzoW5EDGPEsU2oIRVgmIlLlm9YZfpPKoeUxt54vMStl2/762189VmJw== + dependencies: + async "~0.9.0" + glob "^6.0.4" + mkdirp "^0.5.0" + optimist "~0.6.1" + underscore "~1.8.3" + winston "~1.0.0" + +author-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz" + integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA= + +autoprefixer@^9.4.3, autoprefixer@^9.4.7, autoprefixer@^9.6.1: + version "9.6.1" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz" + integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== + dependencies: + browserslist "^4.6.3" + caniuse-lite "^1.0.30000980" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.17" + postcss-value-parser "^4.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +axios@0.19.0: + version "0.19.0" + resolved "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz" + integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== + dependencies: + follow-redirects "1.5.10" + is-buffer "^2.0.2" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0, babel-core@^6.26.3: + version "6.26.3" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-closure-elimination@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/babel-plugin-closure-elimination/-/babel-plugin-closure-elimination-1.3.0.tgz" + integrity sha512-ClKuSxKLLNhe69bvTMuONDI0dQDW49lXB2qtQyyKCzvwegRGel/q4/e+1EoDNDN97Hf1QkxGMbzpAGPmU4Tfjw== + +babel-plugin-console-source@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/babel-plugin-console-source/-/babel-plugin-console-source-2.0.4.tgz" + integrity sha512-OGhrdhuMjiEW0Ma0P9e2B4dFddCpJ/xN/RRaM/4wwDLl+6ZKf+Xd77FtVjpNeDzNRNk8wjRdStA4hpZizXzl1g== + +babel-plugin-danger-remove-unused-import@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/babel-plugin-danger-remove-unused-import/-/babel-plugin-danger-remove-unused-import-1.1.2.tgz" + integrity sha512-3bNmVAaakP3b1aROj7O3bOWj2kBa85sZR5naZ3Rn8L9buiZaAyZLgjfrPDL3zhX4wySOA5jrTm/wSmJPsMm3cg== + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-runtime@^7.0.0-beta.3: + version "7.0.0-beta.3" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-7.0.0-beta.3.tgz" + integrity sha512-jlzZ8RACjt0QGxq+wqsw5bCQE9RcUyWpw987mDY3GYxTpOQT2xoyNoG++oVCHzr/nACLBIprfVBNvv/If1ZYcg== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz" + integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2, base64-js@^1.2.3: + version "1.3.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz" + integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak= + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-build@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz" + integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== + dependencies: + decompress "^4.0.0" + download "^6.2.2" + execa "^0.7.0" + p-map-series "^1.0.0" + tempfile "^2.0.0" + +bin-check@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz" + integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== + dependencies: + execa "^0.7.0" + executable "^4.1.0" + +bin-version-check@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz" + integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== + dependencies: + bin-version "^3.0.0" + semver "^5.6.0" + semver-truncate "^1.1.2" + +bin-version@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz" + integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== + dependencies: + execa "^1.0.0" + find-versions "^3.0.0" + +bin-wrapper@^4.0.0, bin-wrapper@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz" + integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== + dependencies: + bin-check "^4.1.0" + bin-version-check "^4.0.0" + download "^7.1.0" + import-lazy "^3.1.0" + os-filter-obj "^2.0.0" + pify "^4.0.1" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz" + integrity sha1-P7BnBgKsKHjrdw3CA58YNr5irls= + dependencies: + readable-stream "~1.0.2" + +bl@^0.9.0: + version "0.9.5" + resolved "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz" + integrity sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ= + dependencies: + readable-stream "~1.0.26" + +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@3.x.x, bluebird@^3.1.1, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.5: + version "3.5.5" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + +bmp-js@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" + integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@~1.8.0: + version "1.8.4" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.8.4.tgz" + integrity sha1-1JfgS8E7P5qL2McLsM3Bby4CiJg= + dependencies: + bytes "1.0.0" + depd "0.4.5" + iconv-lite "0.4.4" + media-typer "0.3.0" + on-finished "2.1.0" + qs "2.2.4" + raw-body "1.3.0" + type-is "~1.5.1" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-sync-client@^2.26.10: + version "2.26.10" + resolved "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.10.tgz" + integrity sha512-8pYitKwpVva7hzXJI8lTljNDbA9fjMEobHSxWqegIUon/GjJAG3UgHB/+lBWnOLzTY8rGX66MvGqL1Aknyrj7g== + dependencies: + etag "1.8.1" + fresh "0.5.2" + mitt "^1.1.3" + rxjs "^5.5.6" + +browser-sync-ui@^2.26.10: + version "2.26.10" + resolved "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.10.tgz" + integrity sha512-UfNSBItlXcmEvJ9RE4JooNtIsiIfHowp+7/52Jz4VFfQD4v78QK5/NV9DVrG41oMM3zLyhW4f/RliOb4ysStZg== + dependencies: + async-each-series "0.1.1" + connect-history-api-fallback "^1" + immutable "^3" + server-destroy "1.0.1" + socket.io-client "^2.0.4" + stream-throttle "^0.1.3" + +browser-sync@^2.26.10: + version "2.26.10" + resolved "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.10.tgz" + integrity sha512-JeVQP3CARvNA1DELj+ZGWj+/0pzE8+Omvq1WNgzaTXVdP3lNEbGxZbkjvLK7hHpQywjQ1sDJWlJQZT6V59XDTg== + dependencies: + browser-sync-client "^2.26.10" + browser-sync-ui "^2.26.10" + bs-recipes "1.3.4" + bs-snippet-injector "^2.0.1" + chokidar "^3.4.1" + connect "3.6.6" + connect-history-api-fallback "^1" + dev-ip "^1.0.1" + easy-extender "^2.3.4" + eazy-logger "^3" + etag "^1.8.1" + fresh "^0.5.2" + fs-extra "3.0.1" + http-proxy "^1.18.1" + immutable "^3" + localtunnel "^2.0.0" + micromatch "^4.0.2" + opn "5.3.0" + portscanner "2.1.1" + qs "6.2.3" + raw-body "^2.3.2" + resp-modifier "6.0.2" + rx "4.1.0" + send "0.16.2" + serve-index "1.9.1" + serve-static "1.13.2" + server-destroy "1.0.1" + socket.io "2.1.1" + ua-parser-js "^0.7.18" + yargs "^15.4.1" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6: + version "4.7.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + dependencies: + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" + +bs-recipes@1.3.4: + version "1.3.4" + resolved "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz" + integrity sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU= + +bs-snippet-injector@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz" + integrity sha1-YbU5PxH1JVntEgaTEANDtu2wTdU= + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.1, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.2.0, buffer@^5.2.1: + version "5.4.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz" + integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +bufferstreams@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/bufferstreams/-/bufferstreams-2.0.1.tgz" + integrity sha512-ZswyIoBfFb3cVDsnZLLj2IDJ/0ppYdil/v2EGlZXvoefO689FokEmFEldhN5dV7R2QBxFneqTJOMIpfqhj+n0g== + dependencies: + readable-stream "^2.3.6" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@1, bytes@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz" + integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.3" + resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-swap@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/cache-swap/-/cache-swap-0.3.0.tgz" + integrity sha1-HFQaoQilAQb2ML3Zj+HeyLoTP1E= + dependencies: + graceful-fs "^4.1.2" + mkdirp "^0.5.1" + object-assign "^4.0.1" + rimraf "^2.4.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz" + integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +calipers-gif@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-gif/-/calipers-gif-2.0.0.tgz" + integrity sha1-te7+wwZKd8bc29W9xRc1oBuv3Dc= + dependencies: + bluebird "3.x.x" + +calipers-jpeg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-jpeg/-/calipers-jpeg-2.0.0.tgz" + integrity sha1-BtVqU/YnF92AnLlWz2RCPOaTRls= + dependencies: + bluebird "3.x.x" + +calipers-png@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-png/-/calipers-png-2.0.0.tgz" + integrity sha1-HQ0g5cGuX3m3TVKGoul/Wbtwtlg= + dependencies: + bluebird "3.x.x" + +calipers-svg@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/calipers-svg/-/calipers-svg-2.0.1.tgz" + integrity sha512-3PROqHARmj8wWudUC7DzXm1+mSocqgY7jNuehFNHgrUVrKf8o7MqDjS92vJz5LvZsAofJsoAFMajkqwbxBROSQ== + dependencies: + bluebird "3.x.x" + +calipers-webp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-webp/-/calipers-webp-2.0.0.tgz" + integrity sha1-4Sbs4vhM1xd5YSv6KyZTzZXOp3o= + dependencies: + bluebird "3.x.x" + +calipers@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/calipers/-/calipers-2.0.1.tgz" + integrity sha512-AP4Ui2Z8fZf69d8Dx4cfJgPjQHY3m+QXGFCaAGu8pfNQjyajkosS+Kkf1n6pQDMZcelN5h3MdcjweUqxcsS4pg== + dependencies: + bluebird "3.x.x" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989: + version "1.0.30000989" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz" + integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +caw@^2.0.0, caw@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz" + integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== + dependencies: + get-proxy "^2.0.0" + isurl "^1.0.0-alpha5" + tunnel-agent "^0.6.0" + url-to-options "^1.0.1" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^0.5.0: + version "0.5.1" + resolved "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" + integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.4.1: + version "3.4.1" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz" + integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + +chokidar@^2.0.0, chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz" + integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-dependency-plugin@^5.0.2: + version "5.2.0" + resolved "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz" + integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +circular-json@^0.5.9: + version "0.5.9" + resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz" + integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.2.x: + version "4.2.1" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== + dependencies: + source-map "~0.6.0" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +clipboard-copy@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/clipboard-copy/-/clipboard-copy-3.1.0.tgz" + integrity sha512-Xsu1NddBXB89IUauda5BIq3Zq73UWkjkaQlPQbLNvNsd5WBMnTWPNKYR6HGaySOxGYZ+BKxP2E9X4ElnI3yiPA== + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + +clone-response@1.0.2, clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone-stats@^0.0.1, clone-stats@~0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz" + integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz" + integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8= + +clone@^1.0.0, clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz" + integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3, color-name@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +colors@1.0.x: + version "1.0.3" + resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= + +colors@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.19.0, commander@^2.2.0, commander@^2.20.0, commander@^2.8.1: + version "2.20.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commander@~2.8.1: + version "2.8.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" + integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" + integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1, component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compress-commons@~0.1.0: + version "0.1.6" + resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-0.1.6.tgz" + integrity sha1-DHQIcP3ljLpRbwrAyCLjOguF36M= + dependencies: + buffer-crc32 "~0.2.1" + crc32-stream "~0.3.1" + readable-stream "~1.0.26" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +config-chain@^1.1.11, config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1: + version "1.6.0" + resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +connect-livereload@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.4.1.tgz" + integrity sha1-D4oagWvJuv+uRjfM6pF0Yv41kXo= + +connect@3.6.6, connect@^3.0.1: + version "3.6.6" + resolved "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz" + integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + dependencies: + debug "2.6.9" + finalhandler "1.1.0" + parseurl "~1.3.2" + utils-merge "1.0.1" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz" + integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@^0.5.2: + version "0.5.3" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-props@^2.0.1: + version "2.0.4" + resolved "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz" + integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== + dependencies: + each-props "^1.3.0" + is-plain-object "^2.0.1" + +core-js-compat@^3.1.1: + version "3.2.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz" + integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== + dependencies: + browserslist "^4.6.6" + semver "^6.3.0" + +core-js@3: + version "3.2.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz" + integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw== + +core-js@^2.4.0, core-js@^2.5.7: + version "2.6.9" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== + +core-js@^2.5.0: + version "2.6.11" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +crc32-stream@~0.3.1: + version "0.3.4" + resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.4.tgz" + integrity sha1-c7wltF+sHbZjIjGnv86JJ+nwZVI= + dependencies: + buffer-crc32 "~0.2.1" + readable-stream "~1.0.24" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-zip@^2.1.5: + version "2.1.6" + resolved "https://registry.npmjs.org/cross-zip/-/cross-zip-2.1.6.tgz" + integrity sha512-xLIETNkzRcU6jGRzenJyRFxahbtP4628xEKMTI/Ql0Vu8m4h8M7uRLVi7E5OYHuJ6VQPsG4icJumKAFUvfm0+A== + dependencies: + rimraf "^3.0.0" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz" + integrity sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-0.9.1.tgz" + integrity sha1-LhqgDOfjDvLGp6SzAKCAp8l54Nw= + dependencies: + csso "1.3.x" + loader-utils "~0.2.2" + source-map "~0.1.38" + +css-mqpacker@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-7.0.0.tgz" + integrity sha512-temVrWS+sB4uocE2quhW8ru/KguDmGhCU7zN213KxtDvWOH3WS/ZUStfpF4fdCT7W8fPpFrQdWRFqtFtPPfBLA== + dependencies: + minimist "^1.2.0" + postcss "^7.0.0" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz" + integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== + dependencies: + boolbase "^1.0.0" + css-what "^2.1.2" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz" + integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha.33: + version "1.0.0-alpha.33" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz" + integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== + dependencies: + mdn-data "2.0.4" + source-map "^0.5.3" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@^2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssnano-preset-advanced@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-4.0.7.tgz" + integrity sha512-j1O5/DQnaAqEyFFQfC+Z/vRlLXL3LxJHN+lvsfYqr7KgPH74t69+Rsy2yXkovWNaJjZYBpdz2Fj8ab2nH7pZXw== + dependencies: + autoprefixer "^9.4.7" + cssnano-preset-default "^4.0.7" + postcss-discard-unused "^4.0.1" + postcss-merge-idents "^4.0.1" + postcss-reduce-idents "^4.0.2" + postcss-zindex "^4.0.1" + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@1.3.x: + version "1.3.12" + resolved "https://registry.npmjs.org/csso/-/csso-1.3.12.tgz" + integrity sha1-/GKGlKLTiTiqrEmWdTIY/TEc254= + +csso@^3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz" + integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== + dependencies: + css-tree "1.0.0-alpha.29" + +cssom@0.3.x, cssom@^0.3.4: + version "0.3.8" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.1.1: + version "1.4.0" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +cuint@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz" + integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cycle@1.0.x: + version "1.0.3" + resolved "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" + integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI= + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +dateformat@^1.0.7-1.2.3: + version "1.0.12" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz" + integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz" + integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= + +debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@=3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@~0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz" + integrity sha1-IP9NJvXkIstoobrLu2EDmtjBwTA= + +decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz" + integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.0.0, decompress@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz" + integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50= + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deep-scope-analyser@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/deep-scope-analyser/-/deep-scope-analyser-1.7.0.tgz" + integrity sha512-rl5Dmt2IZkFpZo6XbEY1zG8st2Wpq8Pi/dV2gz8ZF6BDYt3fnor2JNxHwdO1WLo0k6JbmYp0x8MNy8kE4l1NtA== + dependencies: + esrecurse "^4.2.1" + estraverse "^4.2.0" + +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== + dependencies: + kind-of "^5.0.2" + +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz" + integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz" + integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delete-empty@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/delete-empty/-/delete-empty-3.0.0.tgz" + integrity sha512-ZUyiwo76W+DYnKsL3Kim6M/UOavPdBJgDYWOmuQhYaZvJH0AXAHbUNyEDtRbBra8wqqr686+63/0azfEk1ebUQ== + dependencies: + ansi-colors "^4.1.0" + minimist "^1.2.0" + path-starts-with "^2.0.0" + rimraf "^2.6.2" + +depd@0.4.5: + version "0.4.5" + resolved "https://registry.npmjs.org/depd/-/depd-0.4.5.tgz" + integrity sha1-GmZLUziLSmVz6K5ntfdnxpPKl/E= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz" + integrity sha1-+cmvVGSvoeepcUWKi97yqpTVuxk= + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +dev-ip@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz" + integrity sha1-p2o+0YVb56ASu4rBbLgPPADcKPA= + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^1.2.2: + version "1.5.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-serializer@0: + version "0.2.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz" + integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" + integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.1: + version "4.2.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +download@^6.2.2: + version "6.2.5" + resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz" + integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== + dependencies: + caw "^2.0.0" + content-disposition "^0.5.2" + decompress "^4.0.0" + ext-name "^5.0.0" + file-type "5.2.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^7.0.0" + make-dir "^1.0.0" + p-event "^1.0.0" + pify "^3.0.0" + +download@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/download/-/download-7.1.0.tgz" + integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== + dependencies: + archive-type "^4.0.0" + caw "^2.0.1" + content-disposition "^0.5.2" + decompress "^4.2.0" + ext-name "^5.0.0" + file-type "^8.1.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^8.3.1" + make-dir "^1.2.0" + p-event "^2.1.0" + pify "^3.0.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz" + integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= + dependencies: + readable-stream "~1.1.9" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +duplexify@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz" + integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.0" + +each-props@^1.3.0: + version "1.3.2" + resolved "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + +easy-extender@^2.3.4: + version "2.3.4" + resolved "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz" + integrity sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q== + dependencies: + lodash "^4.17.10" + +eazy-logger@^3: + version "3.0.2" + resolved "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz" + integrity sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw= + dependencies: + tfunk "^3.0.1" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz" + integrity sha1-jJshKJjYzZ8alDZlDOe+ICyen/A= + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-notarize@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.1.1.tgz" + integrity sha512-TpKfJcz4LXl5jiGvZTs5fbEx+wUFXV5u8voeG5WCHWfY/cdgdD8lDZIZRqLVOtR3VO+drgJ9aiSHIO9TYn/fKg== + dependencies: + debug "^4.1.1" + fs-extra "^8.0.1" + +electron-osx-sign@^0.4.11: + version "0.4.13" + resolved "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.13.tgz" + integrity sha512-+44lasF26lSBLh9HDG6TGpPjuqqtWGD9Pcp+YglE8gyf1OGYdbW8UCIshKPh69O/AcdvDB0ohaTYQz3nbGPbtw== + dependencies: + bluebird "^3.5.0" + compare-version "^0.1.2" + debug "^2.6.8" + isbinaryfile "^3.0.2" + minimist "^1.2.0" + plist "^3.0.1" + +electron-packager@^14.0.6: + version "14.0.6" + resolved "https://registry.npmjs.org/electron-packager/-/electron-packager-14.0.6.tgz" + integrity sha512-X+ikV+TnnNkIrK93vOjsjPeykCQBFxBS7LXKMTE1s62rXWirGMdjWL+edVkBOMRkH0ROJyFmWM28Dpj6sfEg+A== + dependencies: + "@electron/get" "^1.3.0" + asar "^2.0.1" + cross-zip "^2.1.5" + debug "^4.0.1" + electron-notarize "^0.1.1" + electron-osx-sign "^0.4.11" + fs-extra "^8.1.0" + galactus "^0.2.1" + get-package-info "^1.0.0" + junk "^3.1.0" + parse-author "^2.0.0" + plist "^3.0.0" + rcedit "^2.0.0" + resolve "^1.1.6" + sanitize-filename "^1.6.0" + semver "^6.0.0" + yargs-parser "^13.0.0" + +electron-to-chromium@^1.3.247: + version "1.3.264" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.264.tgz" + integrity sha512-z8E7WkrrquCuGYv+kKyybuZIbdms+4PeHp7Zm2uIgEhAigP0bOwqXILItwj0YO73o+QyHY/7XtEfP5DsHOWQgQ== + +elliptic@^6.0.0: + version "6.5.1" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz" + integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +email-validator@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz" + integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.1, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz" + integrity sha1-jhdyBsPICDfYVjLouTWd/osvbq8= + dependencies: + once "~1.3.0" + +engine.io-client@~3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz" + integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-client@~3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz" + integrity sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~4.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io-parser@~2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz" + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz" + integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" + +enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.5.1: + version "1.14.2" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz" + integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.0.0" + string.prototype.trimright "^2.0.0" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.14: + version "0.10.51" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz" + integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "^1.0.0" + +es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz" + integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz" + integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.51" + +es6-templates@^0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz" + integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= + dependencies: + recast "~0.11.12" + through "~2.3.6" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.11.0: + version "1.12.0" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz" + integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz" + integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1: + version "1.4.2" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz" + integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== + dependencies: + eslint-visitor-keys "^1.0.0" + +eslint-visitor-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^2.7.0: + version "2.13.1" + resolved "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz" + integrity sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE= + dependencies: + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.2" + es6-map "^0.1.3" + escope "^3.6.0" + espree "^3.1.6" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^1.1.1" + glob "^7.0.3" + globals "^9.2.0" + ignore "^3.1.2" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + optionator "^0.8.1" + path-is-absolute "^1.0.0" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.6.0" + strip-json-comments "~1.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +eslint@^5.9.0: + version "5.16.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +espree@^3.1.6: + version "3.5.4" + resolved "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^3.1.3, esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0, esrecurse@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@1.8.1, etag@^1.8.1, etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/events/-/events-3.0.0.tgz" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-buffer@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz" + integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== + dependencies: + execa "^0.7.0" + p-finally "^1.0.0" + pify "^3.0.0" + rimraf "^2.5.4" + tempfile "^2.0.0" + +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz" + integrity sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +executable@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +exif-parser@^0.1.12: + version "0.1.12" + resolved "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" + integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz" + integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= + dependencies: + kind-of "^1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +eyes@0.1.x: + version "0.1.8" + resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= + +fancy-log@^1.1.0, fancy-log@^1.2.0, fancy-log@^1.3.2, fancy-log@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-glob@^3.0.3: + version "3.2.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz" + integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastdom@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/fastdom/-/fastdom-1.0.9.tgz" + integrity sha512-SSp4fbVzu8JkkG01NUX+0iOwe9M5PN3MGIQ84txLf4TkkJG4q30khkzumKgi4hUqO1+jX6wLHfnCPoZ6eSZ6Tg== + dependencies: + strictdom "^1.0.1" + +faster.js@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/faster.js/-/faster.js-1.1.1.tgz" + integrity sha512-vPThNSLL/E1f7cLHd9yuayxZR82o/Iic4S5ZY45iY5AgBLNIlr3b3c+VpDjoYqjY9a9C/FQVUQy9oTILVP7X0g== + +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + +faye-websocket@~0.7.2: + version "0.7.3" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.3.tgz" + integrity sha1-zEB0x/Sk39A69U3WXDVLE1EyzhE= + dependencies: + websocket-driver ">=0.3.6" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^1.1.1: + version "1.3.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz" + integrity sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^0.8.1: + version "0.8.5" + resolved "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz" + integrity sha1-knXQMf54DyfUf19K8CvUNxPMFRs= + dependencies: + loader-utils "~0.2.5" + +file-type@5.2.0, file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz" + integrity sha1-LdvqfHP/42No365J3DOMBYwritY= + +file-type@^10.4.0: + version "10.11.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz" + integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== + +file-type@^12.0.0: + version "12.4.2" + resolved "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz" + integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg== + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz" + integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + +file-type@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz" + integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== + +file-type@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" + integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz" + integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= + +filenamify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz" + integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz" + integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz" + integrity sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ= + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-versions@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.1.0.tgz" + integrity sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q== + dependencies: + array-uniq "^2.1.0" + semver-regex "^2.0.0" + +findup-sync@3.0.0, findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz" + integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^4.0.2" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz" + integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0, flatted@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz" + integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= + +flora-colossus@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.1.tgz" + integrity sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA== + dependencies: + debug "^4.1.1" + fs-extra "^7.0.0" + +fluent-ffmpeg@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz" + integrity sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ= + dependencies: + async ">=0.2.9" + which "^1.1.1" + +flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0: + version "1.12.1" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz" + integrity sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-stream@^0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz" + integrity sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2, fresh@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0, from2@^2.1.1: + version "2.3.0" + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +front-matter@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/front-matter/-/front-matter-2.1.2.tgz" + integrity sha1-91mDufL0E75ljJPf172M5AePXNs= + dependencies: + js-yaml "^3.4.6" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@3.0.1, fs-extra@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz" + integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-extra@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.0.1, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz" + integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +galactus@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/galactus/-/galactus-0.2.1.tgz" + integrity sha1-y+0tIKQMH1Z5o1kI4rlBVzPnjbk= + dependencies: + debug "^3.1.0" + flora-colossus "^1.0.0" + fs-extra "^4.0.0" + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz" + integrity sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8= + dependencies: + globule "~0.1.0" + +generate-function@^2.0.0: + version "2.3.1" + resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + is-property "^1.0.2" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" + integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= + dependencies: + is-property "^1.0.0" + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-package-info@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz" + integrity sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw= + dependencies: + bluebird "^3.1.1" + debug "^2.2.0" + lodash.get "^4.0.0" + read-pkg-up "^2.0.0" + +get-proxy@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz" + integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== + dependencies: + npm-conf "^1.1.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gifsicle@^5.0.0, gifsicle@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/gifsicle/-/gifsicle-5.2.0.tgz" + integrity sha512-vOIS3j0XoTCxq9pkGj43gEix82RkI5FveNgaFZutjbaui/HH+4fR8Y56dwXDuxYo8hR4xOo6/j2h1WHoQW6XLw== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + execa "^5.0.0" + logalot "^2.0.0" + +glob-all@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz" + integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs= + dependencies: + glob "^7.0.5" + yargs "~1.2.6" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz" + integrity sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs= + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz" + integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz" + integrity sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs= + dependencies: + gaze "^0.5.1" + +glob-watcher@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz" + integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== + dependencies: + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + object.defaults "^1.1.0" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz" + integrity sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY= + dependencies: + find-index "^0.1.1" + +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz" + integrity sha1-xstz0yJsHv7wTePFbQEvAzd+4V8= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^6.0.4: + version "6.0.4" + resolved "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz" + integrity sha1-0p4KBV3qUTj00H7UDomC6DwgZs0= + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +glob@~3.2.6: + version "3.2.11" + resolved "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz" + integrity sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0= + dependencies: + inherits "2" + minimatch "0.3" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.npmjs.org/global/-/global-4.3.2.tgz" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^9.18.0, globals@^9.2.0: + version "9.18.0" + resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globby@^10.0.0: + version "10.0.2" + resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + +globule@^1.0.0: + version "1.2.1" + resolved "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz" + integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz" + integrity sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU= + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz" + integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== + dependencies: + sparkles "^1.0.0" + +gonzales-pe-sl@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz" + integrity sha1-aoaLw4BkXxQf7rBCxvl/zHG1n+Y= + dependencies: + minimist "1.1.x" + +gonzales-pe@^4.2.3: + version "4.2.4" + resolved "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz" + integrity sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ== + dependencies: + minimist "1.1.x" + +got@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +got@^8.3.1: + version "8.3.2" + resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^3.0.0: + version "3.0.12" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz" + integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg== + dependencies: + natives "^1.1.3" + +graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q= + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +gulp-audiosprite@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/gulp-audiosprite/-/gulp-audiosprite-1.1.0.tgz" + integrity sha512-CwSfZjmNPlTyzcAFaE8RiKzh1dQFDLPPZMHshKwvGqNeTB86s30K8hMXGrrjFqHNF9xb0SUnXfbYT32MO4aNog== + dependencies: + audiosprite "*" + through2 "*" + vinyl "*" + +gulp-cache@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/gulp-cache/-/gulp-cache-1.1.3.tgz" + integrity sha512-NE814LdX1NWQn2sMzn+Rf673o4mqlgg7OyLf92oQ4KEl6DdPfduEGLNH+HexLVcFZXH93DBuxFOvpv4/Js5VaA== + dependencies: + "@babel/runtime" "^7.5.5" + cache-swap "^0.3.0" + core-js "3" + object.pick "^1.3.0" + plugin-error "^1.0.1" + through2 "3.0.1" + vinyl "^2.2.0" + +gulp-cached@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/gulp-cached/-/gulp-cached-1.1.1.tgz" + integrity sha1-/nzU+H83YB5gc8/t7lwr2vi2rM4= + dependencies: + lodash.defaults "^4.2.0" + through2 "^2.0.1" + +gulp-clean@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/gulp-clean/-/gulp-clean-0.4.0.tgz" + integrity sha512-DARK8rNMo4lHOFLGTiHEJdf19GuoBDHqGUaypz+fOhrvOs3iFO7ntdYtdpNxv+AzSJBx/JfypF0yEj9ks1IStQ== + dependencies: + fancy-log "^1.3.2" + plugin-error "^0.1.2" + rimraf "^2.6.2" + through2 "^2.0.3" + vinyl "^2.1.0" + +gulp-cli@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz" + integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.4.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.2.0" + yargs "^7.1.0" + +gulp-dart-sass@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/gulp-dart-sass/-/gulp-dart-sass-1.0.2.tgz" + integrity sha512-8fLttA824mbuc0jRVlGs00zWYZXBckat6INawx5kp66Eqsz5srNWTA51t0mbfB4C8a/a/GZ9muYLwXGklgAHlw== + dependencies: + chalk "^2.3.0" + lodash.clonedeep "^4.3.2" + plugin-error "^1.0.1" + replace-ext "^1.0.0" + sass "^1.26.3" + strip-ansi "^4.0.0" + through2 "^2.0.0" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-dom@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/gulp-dom/-/gulp-dom-1.0.0.tgz" + integrity sha512-hD2w2t3fsjPicX2mT6MFFb+eP3FyCVtEHdejGMMH4+w9EBFxA2xIZadqlzYdAEdE+39dP1aGatuhdHJteUvn1A== + dependencies: + jsdom "12.2.0" + plugin-error "1.0.1" + through2 "2.0.3" + +gulp-flatten@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/gulp-flatten/-/gulp-flatten-0.4.0.tgz" + integrity sha512-eg4spVTAiv1xXmugyaCxWne1oPtNG0UHEtABx5W8ScLiqAYceyYm6GYA36x0Qh8KOIXmAZV97L2aYGnKREG3Sg== + dependencies: + plugin-error "^0.1.2" + through2 "^2.0.0" + +gulp-fluent-ffmpeg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/gulp-fluent-ffmpeg/-/gulp-fluent-ffmpeg-2.0.0.tgz" + integrity sha512-pwG6N+NKwLzO/0ybzgcwiADKZ4OzpFjNR4drqCvbvluYcSh/yvsAW7wm63jFzpJIjfFnanYGPNWiUn8+TuTR/g== + dependencies: + concat-stream "^2.0.0" + fluent-ffmpeg "^2.1.2" + plugin-error "^1.0.1" + through2 "^3.0.1" + +gulp-html-beautify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gulp-html-beautify/-/gulp-html-beautify-1.0.1.tgz" + integrity sha1-KDTG93ZpYFcm7uVeMgX2MHS3oVI= + dependencies: + js-beautify "^1.5.10" + rcloader "^0.1.4" + through2 "^2.0.0" + +gulp-htmlmin@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/gulp-htmlmin/-/gulp-htmlmin-5.0.1.tgz" + integrity sha512-ASlyDPZOSKjHYUifYV0rf9JPDflN9IRIb8lw2vRqtYMC4ljU3zAmnnaVXwFQ3H+CfXxZSUesZ2x7jrnPJu93jA== + dependencies: + html-minifier "^3.5.20" + plugin-error "^1.0.1" + through2 "^2.0.3" + +gulp-if@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/gulp-if/-/gulp-if-3.0.0.tgz" + integrity sha512-fCUEngzNiEZEK2YuPm+sdMpO6ukb8+/qzbGfJBXyNOXz85bCG7yBI+pPSl+N90d7gnLvMsarthsAImx0qy7BAw== + dependencies: + gulp-match "^1.1.0" + ternary-stream "^3.0.0" + through2 "^3.0.1" + +gulp-imagemin@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/gulp-imagemin/-/gulp-imagemin-7.1.0.tgz" + integrity sha512-6xBTNybmPY2YrvrhhlS8Mxi0zn0ypusLon63p9XXxDtIf7U7c6KcViz94K7Skosucr3378A6IY2kJSjJyuwylQ== + dependencies: + chalk "^3.0.0" + fancy-log "^1.3.2" + imagemin "^7.0.0" + plugin-error "^1.0.1" + plur "^3.0.1" + pretty-bytes "^5.3.0" + through2-concurrent "^2.0.0" + optionalDependencies: + imagemin-gifsicle "^7.0.0" + imagemin-mozjpeg "^8.0.0" + imagemin-optipng "^7.0.0" + imagemin-svgo "^7.0.0" + +gulp-load-plugins@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/gulp-load-plugins/-/gulp-load-plugins-2.0.3.tgz" + integrity sha512-U/1Sml7UbyOu2kH6Fbpo+ka2xyp4DRH6+oDtHgC8oKsnlQRuiBQYQ/LS4k6HxBv1HJlucaNV/SdwZXtLBuvSqg== + dependencies: + array-unique "^0.3.2" + fancy-log "^1.2.0" + findup-sync "^4.0.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + micromatch "^4.0.2" + resolve "^1.15.1" + +gulp-match@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/gulp-match/-/gulp-match-1.1.0.tgz" + integrity sha512-DlyVxa1Gj24DitY2OjEsS+X6tDpretuxD6wTfhXE/Rw2hweqc1f6D/XtsJmoiCwLWfXgR87W9ozEityPCVzGtQ== + dependencies: + minimatch "^3.0.3" + +gulp-phonegap-build@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/gulp-phonegap-build/-/gulp-phonegap-build-0.1.5.tgz" + integrity sha1-NsFF5jzSBHAr4PO5m+GeCWcSvK8= + dependencies: + archiver "~0.11.0" + gulp "~3.8.7" + gulp-util "~3.0.0" + lodash "~2.4.1" + needle "" + read "~1.0.4" + through2 "~0.6.1" + vinyl-buffer "0.0.0" + vinyl-source-stream "^0.1.1" + +gulp-plumber@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz" + integrity sha512-mctAi9msEAG7XzW5ytDVZ9PxWMzzi1pS2rBH7lA095DhMa6KEXjm+St0GOCc567pJKJ/oCvosVAZEpAey0q2eQ== + dependencies: + chalk "^1.1.3" + fancy-log "^1.3.2" + plugin-error "^0.1.2" + through2 "^2.0.3" + +gulp-pngquant@^1.0.13: + version "1.0.13" + resolved "https://registry.npmjs.org/gulp-pngquant/-/gulp-pngquant-1.0.13.tgz" + integrity sha512-oSo5Rw2Rb10eyGhc8XKbghq6yteMmxvsSAKGOZU0ssbylMHk3WoTWcEpNg0YWMyRjrY913y+B+PA4wHM1AL2wA== + dependencies: + chalk "^3.0.0" + fancy-log "^1.3.3" + plugin-error "^1.0.1" + pngquant-bin "^5.0.2" + through2 "^3.0.1" + +gulp-postcss@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-8.0.0.tgz" + integrity sha512-Wtl6vH7a+8IS/fU5W9IbOpcaLqKxd5L1DUOzaPmlnCbX1CrG0aWdwVnC3Spn8th0m8D59YbysV5zPUe1n/GJYg== + dependencies: + fancy-log "^1.3.2" + plugin-error "^1.0.1" + postcss "^7.0.2" + postcss-load-config "^2.0.0" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-rename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz" + integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== + +gulp-sass-lint@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/gulp-sass-lint/-/gulp-sass-lint-1.4.0.tgz" + integrity sha512-XerYvHx7rznInkedMw5Ayif+p8EhysOVHUBvlgUa0FSl88H2cjNjaRZ3NGn5Efmp+2HxpXp4NHqMIbOSdwef3A== + dependencies: + plugin-error "^0.1.2" + sass-lint "^1.12.0" + through2 "^2.0.2" + +"gulp-sftp@git+https://git@github.com/webksde/gulp-sftp": + version "0.1.6" + resolved "git+https://git@github.com/webksde/gulp-sftp.git#c8dfb20e290477eeed66a867406576d0c3d4fc6b" + dependencies: + async "~0.9.0" + gulp-util "~3.0.0" + object-assign "~0.3.1" + parents "~1.0.0" + ssh2 "~0.6.1" + through2 "~0.4.2" + +gulp-terser@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gulp-terser/-/gulp-terser-1.2.0.tgz" + integrity sha512-lf+jE2DALg2w32p0HRiYMlFYRYelKZPNunHp2pZccCYrrdCLOs0ItbZcN63yr2pbz116IyhUG9mD/QbtRO1FKA== + dependencies: + plugin-error "^1.0.1" + terser "^4.0.0" + through2 "^3.0.1" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-util@^2.2.19: + version "2.2.20" + resolved "https://registry.npmjs.org/gulp-util/-/gulp-util-2.2.20.tgz" + integrity sha1-1xRuVyiRC9jwR6awseVJvCLb1kw= + dependencies: + chalk "^0.5.0" + dateformat "^1.0.7-1.2.3" + lodash._reinterpolate "^2.4.1" + lodash.template "^2.4.1" + minimist "^0.2.0" + multipipe "^0.1.0" + through2 "^0.5.0" + vinyl "^0.2.1" + +gulp-util@^3.0.0, gulp-util@~3.0.0: + version "3.0.8" + resolved "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz" + integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp-webserver@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/gulp-webserver/-/gulp-webserver-0.9.1.tgz" + integrity sha1-4JmSFl2XxYZWFtZCoWAVKbA2cGQ= + dependencies: + connect "^3.0.1" + connect-livereload "^0.4.0" + gulp-util "^2.2.19" + isarray "0.0.1" + node.extend "^1.0.10" + open "^0.0.5" + proxy-middleware "^0.5.0" + serve-index "^1.1.4" + serve-static "^1.3.0" + through2 "^0.5.1" + tiny-lr "0.1.4" + watch "^0.11.0" + +gulp-yaml@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/gulp-yaml/-/gulp-yaml-2.0.4.tgz" + integrity sha512-S/9Ib8PO+jGkCvWDwBUkmFkeW7QM0pp4PO8NNrMEfWo5Sk30P+KqpyXc4055L/vOX326T/b9MhM4nw5EenyX9g== + dependencies: + bufferstreams "^2.0.1" + js-yaml "^3.13.1" + object-assign "^4.1.1" + plugin-error "^1.0.1" + replace-ext "^1.0.0" + through2 "^3.0.0" + +gulp@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz" + integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== + dependencies: + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" + +gulp@~3.8.7: + version "3.8.11" + resolved "https://registry.npmjs.org/gulp/-/gulp-3.8.11.tgz" + integrity sha1-1Vfgpyg+tBNkkZabBJd2eXLx0oo= + dependencies: + archy "^1.0.0" + chalk "^0.5.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^0.3.2" + liftoff "^2.0.1" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^0.2.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz" + integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= + dependencies: + glogg "^1.0.0" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" + integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= + dependencies: + ansi-regex "^0.2.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz" + integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= + dependencies: + sparkles "^1.0.0" + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.4" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz" + integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + +howler@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/howler/-/howler-2.1.2.tgz" + integrity sha512-oKrTFaVXsDRoB/jik7cEpWKTj7VieoiuzMYJ7E/EU5ayvmpRhumCv3YQ3823zi9VTJkSWAhbryHnlZAionGAJg== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-loader@^0.5.5: + version "0.5.5" + resolved "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz" + integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog== + dependencies: + es6-templates "^0.2.3" + fastparse "^1.1.1" + html-minifier "^3.5.8" + loader-utils "^1.1.0" + object-assign "^4.1.1" + +html-minifier@^3.5.20, html-minifier@^3.5.8: + version "3.5.21" + resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-cache-semantics@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz" + integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== + +http-errors@1.7.3: + version "1.7.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz" + integrity sha1-6V8uQdsHNfwhZS94J6XuMuY8g6g= + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-loader@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/ignore-loader/-/ignore-loader-0.1.2.tgz" + integrity sha1-2B8kA3bQuk8Nd4lyw60lh0EXpGM= + +ignore@^3.1.2: + version "3.3.10" + resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1: + version "5.1.8" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +imagemin-gifsicle@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz" + integrity sha512-LaP38xhxAwS3W8PFh4y5iQ6feoTSF+dTAXFRUEYQWYst6Xd+9L/iPk34QGgK/VO/objmIlmq9TStGfVY2IcHIA== + dependencies: + execa "^1.0.0" + gifsicle "^5.0.0" + is-gif "^3.0.0" + +imagemin-jpegtran@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-7.0.0.tgz" + integrity sha512-MJoyTCW8YjMJf56NorFE41SR/WkaGA3IYk4JgvMlRwguJEEd3PnP9UxA8Y2UWjquz8d+On3Ds/03ZfiiLS8xTQ== + dependencies: + exec-buffer "^3.0.0" + is-jpg "^2.0.0" + jpegtran-bin "^5.0.0" + +imagemin-mozjpeg@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz" + integrity sha512-+EciPiIjCb8JWjQNr1q8sYWYf7GDCNDxPYnkD11TNIjjWNzaV+oTg4DpOPQjl5ZX/KRCPMEgS79zLYAQzLitIA== + dependencies: + execa "^1.0.0" + is-jpg "^2.0.0" + mozjpeg "^6.0.0" + +imagemin-optipng@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-7.1.0.tgz" + integrity sha512-JNORTZ6j6untH7e5gF4aWdhDCxe3ODsSLKs/f7Grewy3ebZpl1ZsU+VUTPY4rzeHgaFA8GSWOoA8V2M3OixWZQ== + dependencies: + exec-buffer "^3.0.0" + is-png "^2.0.0" + optipng-bin "^6.0.0" + +imagemin-pngquant@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.0.tgz" + integrity sha512-9cqnTEaJwAHWUi+8EMTB3NUouWToCWxtL+QnoYr8bfVwuKilHvRVWKsa9lt+0c3aWaGxCAkHs++j8qINvSqomA== + dependencies: + execa "^4.0.0" + is-png "^2.0.0" + is-stream "^2.0.0" + ow "^0.17.0" + pngquant-bin "^6.0.0" + +imagemin-svgo@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.0.0.tgz" + integrity sha512-+iGJFaPIMx8TjFW6zN+EkOhlqcemdL7F3N3Y0wODvV2kCUBuUtZK7DRZc1+Zfu4U2W/lTMUyx2G8YMOrZntIWg== + dependencies: + is-svg "^3.0.0" + svgo "^1.0.5" + +imagemin@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz" + integrity sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w== + dependencies: + file-type "^12.0.0" + globby "^10.0.0" + graceful-fs "^4.2.2" + junk "^3.1.0" + make-dir "^3.0.0" + p-pipe "^3.0.0" + replace-ext "^1.0.0" + +immutable@^3: + version "3.8.2" + resolved "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-lazy@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz" + integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== + +import-local@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz" + integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js= + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz" + integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34= + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +interpret@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +interpret@^0.3.2: + version "0.3.10" + resolved "https://registry.npmjs.org/interpret/-/interpret-0.3.10.tgz" + integrity sha1-CIwl3nMcbFsRKpDwBxz69Fnlp7s= + +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz" + integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +irregular-plurals@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-2.0.0.tgz" + integrity sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz" + integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== + +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz" + integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + +is-gif@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz" + integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== + dependencies: + file-type "^10.4.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-jpg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz" + integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= + +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz" + integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== + +is-my-json-valid@^2.10.0: + version "2.20.0" + resolved "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz" + integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA== + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz" + integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + +is-number-like@^1.0.3: + version "1.0.8" + resolved "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz" + integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== + dependencies: + lodash.isfinite "^3.3.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-png@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-png/-/is-png-2.0.0.tgz" + integrity sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g== + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-property@^1.0.0, is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz" + integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/is/-/is-3.3.0.tgz" + integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isbinaryfile@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@0.1.x, isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jimp@^0.6.1: + version "0.6.8" + resolved "https://registry.npmjs.org/jimp/-/jimp-0.6.8.tgz" + integrity sha512-F7emeG7Hp61IM8VFbNvWENLTuHe0ghizWPuP4JS9ujx2r5mCVYEd/zdaz6M2M42ZdN41blxPajLWl9FXo7Mr2Q== + dependencies: + "@jimp/custom" "^0.6.8" + "@jimp/plugins" "^0.6.8" + "@jimp/types" "^0.6.8" + core-js "^2.5.7" + regenerator-runtime "^0.13.3" + +jpeg-js@^0.3.4: + version "0.3.6" + resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.6.tgz" + integrity sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw== + +jpegtran-bin@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-5.0.1.tgz" + integrity sha512-xQoXWkIEt4ckmvcHd9xG3RcCIn00sf2TshDyFMOAE+46EspEqwqoPWotVI3e55FGWafMa9cEqaoIyrCeWDnFPw== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.0.0" + +js-base64@^2.1.9: + version "2.5.1" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz" + integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== + +js-beautify@^1.5.10: + version "1.10.2" + resolved "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.2.tgz" + integrity sha512-ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~0.5.1" + nopt "~4.0.1" + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@12.2.0: + version "12.2.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-12.2.0.tgz" + integrity sha512-QPOggIJ8fquWPLaYYMoh+zqUmdphDtu1ju0QGTitZT1Yd8I5qenPpXM1etzUegu3MjVp8XPzgZxdn8Yj7e40ig== + dependencies: + abab "^2.0.0" + acorn "^6.0.2" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.0.1" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.0.9" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.3" + symbol-tree "^3.2.2" + tough-cookie "^2.4.3" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + ws "^6.1.0" + xml-name-validator "^3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz" + integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz" + integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +junk@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz" + integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== + +just-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz" + integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" + integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0, kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +known-css-properties@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.11.0.tgz" + integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== + +known-css-properties@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.3.0.tgz" + integrity sha512-QMQcnKAiQccfQTqtBh/qwquGZ2XK/DXND1jrcN9M8gMMy99Gwla7GQjndVUsEqIaRyP6bsFRuhwRj5poafBGJQ== + +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz" + integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + +lazystream@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz" + integrity sha1-GyXWPHcqTCDwpe0KnXf0hLbhaSA= + dependencies: + readable-stream "~1.0.2" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz" + integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= + dependencies: + flush-write-stream "^1.0.2" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@^2.0.1: + version "2.5.0" + resolved "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz" + integrity sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= + dependencies: + extend "^3.0.0" + findup-sync "^2.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== + dependencies: + extend "^3.0.0" + findup-sync "^3.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +limiter@^1.0.5: + version "1.1.4" + resolved "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz" + integrity sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg== + +line-column@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz" + integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= + dependencies: + isarray "^1.0.0" + isobject "^2.0.0" + +load-bmfont@^1.3.1, load-bmfont@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz" + integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^0.2.5, loader-utils@~0.2.2, loader-utils@~0.2.3, loader-utils@~0.2.5: + version "0.2.17" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.0, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +localtunnel@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.0.tgz" + integrity sha512-g6E0aLgYYDvQDxIjIXkgJo2+pHj3sGg4Wz/XP3h2KtZnRsWPbOQY+hw1H8Z91jep998fkcVE9l+kghO+97vllg== + dependencies: + axios "0.19.0" + debug "4.1.1" + openurl "1.1.1" + yargs "13.3.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U= + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz" + integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= + +lodash._escapehtmlchar@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz" + integrity sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0= + dependencies: + lodash._htmlescapes "~2.4.1" + +lodash._escapestringchar@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz" + integrity sha1-7P4iYYoq3lC/7qQ5N+Ud9m8O23I= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._htmlescapes@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz" + integrity sha1-MtFL8IRLbeb4tioFG09nwii2JMs= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + +lodash._isnative@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz" + integrity sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw= + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz" + integrity sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE= + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz" + integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo= + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz" + integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0= + +lodash._reinterpolate@^2.4.1, lodash._reinterpolate@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz" + integrity sha1-TxInqlqHEfxjL1sHofRgequLMiI= + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash._reunescapedhtml@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz" + integrity sha1-dHxPxAED6zu4oJduVx96JlnpO6c= + dependencies: + lodash._htmlescapes "~2.4.1" + lodash.keys "~2.4.1" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" + integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= + +lodash._shimkeys@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz" + integrity sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM= + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.capitalize@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz" + integrity sha1-+CbJtOKoUR2E46yinbBeGk87cqk= + +lodash.clone@^4.3.2: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz" + integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= + +lodash.clonedeep@^4.3.2: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.defaults@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz" + integrity sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ= + dependencies: + lodash._objecttypes "~2.4.1" + lodash.keys "~2.4.1" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz" + integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg= + dependencies: + lodash._root "^3.0.0" + +lodash.escape@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz" + integrity sha1-LOEsXghNsKV92l5dHu659dF1o7Q= + dependencies: + lodash._escapehtmlchar "~2.4.1" + lodash._reunescapedhtml "~2.4.1" + lodash.keys "~2.4.1" + +lodash.get@^4.0.0: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.isfinite@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz" + integrity sha1-+4m2WpqAKBgz8LdHizpRBPiY67M= + +lodash.isobject@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz" + integrity sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU= + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.kebabcase@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.keys@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz" + integrity sha1-SN6kbfj/djKxDXBrissmWR4rNyc= + dependencies: + lodash._isnative "~2.4.1" + lodash._shimkeys "~2.4.1" + lodash.isobject "~2.4.1" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + +lodash.some@^4.2.2: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz" + integrity sha1-nmEQB+32KRKal0qzxIuBez4c8g0= + dependencies: + lodash._escapestringchar "~2.4.1" + lodash._reinterpolate "~2.4.1" + lodash.defaults "~2.4.1" + lodash.escape "~2.4.1" + lodash.keys "~2.4.1" + lodash.templatesettings "~2.4.1" + lodash.values "~2.4.1" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz" + integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8= + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz" + integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU= + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.templatesettings@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz" + integrity sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk= + dependencies: + lodash._reinterpolate "~2.4.1" + lodash.escape "~2.4.1" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash.values@~2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz" + integrity sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ= + dependencies: + lodash.keys "~2.4.1" + +lodash@^3.0.1: + version "3.10.1" + resolved "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= + +lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.10: + version "4.17.15" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz" + integrity sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE= + +lodash@~2.4.1: + version "2.4.2" + resolved "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" + integrity sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4= + +logalot@^2.0.0, logalot@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz" + integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +longest@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz" + integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz" + integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI= + +lru-cache@^4.0.1, lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + +make-dir@^1.0.0, make-dir@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-loader@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/markdown-loader/-/markdown-loader-5.1.0.tgz" + integrity sha512-xtQNozLEL+55ZSPTNwro8epZqf1h7HjAZd/69zNe8lbckDiGVHeLQm849bXzocln2pwRK2A/GrW/7MAmwjcFog== + dependencies: + loader-utils "^1.2.3" + marked "^0.7.0" + +marked@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz" + integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== + +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz" + integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz" + integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.0, memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-db@^1.28.0: + version "1.41.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.41.0.tgz" + integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz" + integrity sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc= + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime-types@~2.0.9: + version "2.0.14" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz" + integrity sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY= + dependencies: + mime-db "~1.12.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + +mime@^1.3.4: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.0: + version "2.4.4" + resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@0.3: + version "0.3.0" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" + integrity sha1-J12O2qxPG7MyZHIInnlJyDlGmd0= + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" + integrity sha1-jQh8OcazjAAbl/ynzm0OHoCvusc= + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + integrity sha1-x054BXT2PG+aCQ6Q775u9TpqdWo= + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@1.1.x: + version "1.1.3" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz" + integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= + +minimist@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz" + integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= + +minimist@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz" + integrity sha1-Tf/lJdriuGTGbC4jxicdev3s784= + +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mitt@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/mitt/-/mitt-1.1.3.tgz" + integrity sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +mozjpeg@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/mozjpeg/-/mozjpeg-6.0.1.tgz" + integrity sha512-9Z59pJMi8ni+IUvSH5xQwK5tNLw7p3dwDNCZ3o1xE+of3G5Hc/yOz6Ue/YuLiBXU3ZB5oaHPURyPdqfBX/QYJA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.1.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multipipe@^0.1.0, multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz" + integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s= + dependencies: + duplexer2 "0.0.2" + +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" + integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA= + +mute-stream@0.0.7, mute-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanoid@^3.1.16: + version "3.1.16" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.16.tgz" + integrity sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natives@^1.1.3: + version "1.1.6" + resolved "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz" + integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@: + version "2.4.0" + resolved "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +next-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^1.1.29: + version "1.1.32" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.32.tgz" + integrity sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A== + dependencies: + semver "^5.3.0" + +node-sri@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/node-sri/-/node-sri-1.1.1.tgz" + integrity sha1-BBCW0rEfIytl3txMOuHLYrq7VLA= + +node.extend@^1.0.10: + version "1.1.8" + resolved "https://registry.npmjs.org/node.extend/-/node.extend-1.1.8.tgz" + integrity sha512-L/dvEBwyg3UowwqOUTyDsGBU6kjBQOpOhshio9V3i3BMPv5YUb9+mWNN8MK0IbWqT0AqaTSONZf0aTuMMahWgA== + dependencies: + has "^1.0.3" + is "^3.2.1" + +nopt@~4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.4.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.4.1.tgz" + integrity sha512-rjH3yRt0Ssx19mUwS0hrDUOdG9VI+oRLpLHJ7tXRdjcuQ7v7wo6qPvOZppHRrqfslTKr0L2yBhjj4UXd7c3cQg== + +now-and-later@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz" + integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== + dependencies: + once "^1.3.2" + +npm-conf@^1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.9: + version "2.1.4" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" + integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-assign@~0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-0.3.1.tgz" + integrity sha1-Bg4qKifXwNd+x3t48Rqkf9iACNI= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= + +object-path@^0.9.0: + version "0.9.2" + resolved "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz" + integrity sha1-D9mnT8X60a45aLWGvaXGMr1sBaU= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.4, object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.0.0, object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz" + integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +omggif@^1.0.9: + version "1.0.10" + resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + +on-finished@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz" + integrity sha1-DFOfCSkej/rd4MiiWFD7LO3HAi0= + dependencies: + ee-first "1.0.5" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/open/-/open-0.0.5.tgz" + integrity sha1-QsPhjslUZra/DcQvOilFw/DK2Pw= + +openurl@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz" + integrity sha1-OHW0sO96UsFW8NtB1GCduw+Us4c= + +opn@5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz" + integrity sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g== + dependencies: + is-wsl "^1.1.0" + +optimist@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +optipng-bin@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/optipng-bin/-/optipng-bin-6.0.0.tgz" + integrity sha512-95bB4y8IaTsa/8x6QH4bLUuyvyOoGBCLDA7wOgDL8UFqJpSUh1Hob8JRJhit+wC1ZLN3tQ7mFt7KuBj0x8F2Wg== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.0.0" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz" + integrity sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4= + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz" + integrity sha1-/VZamvjrRHO6abbtijQ1LLVS8SY= + +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz" + integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= + dependencies: + readable-stream "^2.0.1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-filter-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz" + integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== + dependencies: + arch "^2.1.0" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + +os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +ow@^0.17.0: + version "0.17.0" + resolved "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz" + integrity sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA== + dependencies: + type-fest "^0.11.0" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-event@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz" + integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= + dependencies: + p-timeout "^1.1.1" + +p-event@^2.1.0: + version "2.3.1" + resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz" + integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= + dependencies: + p-reduce "^1.0.0" + +p-pipe@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz" + integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@^1.0.5, pako@~1.0.5: + version "1.0.10" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parents@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz" + integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-author@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz" + integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8= + dependencies: + author-regex "^1.0.0" + +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz" + integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz" + integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-headers@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz" + integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg== + dependencies: + for-each "^0.3.3" + string.prototype.trim "^1.1.2" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.0, parseurl@~1.3.2: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz" + integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + dependencies: + path-root-regex "^0.1.0" + +path-starts-with@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/path-starts-with/-/path-starts-with-2.0.0.tgz" + integrity sha512-3UHTHbJz5+NLkPafFR+2ycJOjoc4WV2e9qCZCnm71zHiWaFrm1XniLVTkZXvaRgxr1xFh9JsTdicpH2yM03nLA== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + +phonegap-plugin-mobile-accessibility@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/phonegap-plugin-mobile-accessibility/-/phonegap-plugin-mobile-accessibility-1.0.5.tgz" + integrity sha1-lah1TRJ1CLxuGuJZpTznZYNurAM= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz" + integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + dependencies: + pngjs "^3.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkginfo@0.3.x: + version "0.3.1" + resolved "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" + integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= + +plist@^3.0.0, plist@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz" + integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ== + dependencies: + base64-js "^1.2.3" + xmlbuilder "^9.0.7" + xmldom "0.1.x" + +plugin-error@1.0.1, plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz" + integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + +plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz" + integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + +plur@^3.0.1: + version "3.1.1" + resolved "https://registry.npmjs.org/plur/-/plur-3.1.1.tgz" + integrity sha512-t1Ax8KUvV3FFII8ltczPn2tJdjqbd1sIzu6t4JL7nQ3EyeL/lTrj5PWKb06ic5/6XYDr65rQ4uzQEGN70/6X5w== + dependencies: + irregular-plurals "^2.0.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz" + integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU= + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pngjs@^3.0.0, pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +pngquant-bin@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-5.0.2.tgz" + integrity sha512-OLdT+4JZx5BqE1CFJkrvomYV0aSsv6x2Bba+aWaVc0PMfWlE+ZByNKYAdKeIqsM4uvW1HOSEHnf8KcOnykPNxA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.1" + execa "^0.10.0" + logalot "^2.0.0" + +pngquant-bin@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-6.0.0.tgz" + integrity sha512-oXWAS9MQ9iiDAJRdAZ9KO1mC5UwhzKkJsmetiu0iqIjJuW7JsuLhmc4JdRm7uJkIWRzIAou/Vq2VcjfJwz30Ow== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.1" + execa "^4.0.0" + logalot "^2.0.0" + +portscanner@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz" + integrity sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y= + dependencies: + async "1.5.2" + is-number-like "^1.0.3" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-assets@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-assets/-/postcss-assets-5.0.0.tgz" + integrity sha1-9yHQfTOWBftYQU6fac8FQBxU5wk= + dependencies: + assets "^3.0.0" + bluebird "^3.5.0" + postcss "^6.0.10" + postcss-functions "^3.0.0" + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz" + integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0" + +postcss-calc@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + dependencies: + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-critical-split@^2.5.3: + version "2.5.3" + resolved "https://registry.npmjs.org/postcss-critical-split/-/postcss-critical-split-2.5.3.tgz" + integrity sha512-FDG+evU4RBGM9/LQ5nCktzFKjYH2O/SLollJwtrdGagXXbMvk620Bc9o8WpqHJnu573uxVkx9lhob1HZvSWhZg== + dependencies: + merge "^1.2.0" + postcss "^6.0.1" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-discard-unused@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-4.0.1.tgz" + integrity sha512-/3vq4LU0bLH2Lj4NYN7BTf2caly0flUB7Xtrk9a5K3yLuXMkHMqMO/x3sDq8W2b1eQFSCyY0IVz2L+0HP8kUUA== + dependencies: + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz" + integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== + dependencies: + postcss "^7.0.2" + +postcss-functions@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz" + integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= + dependencies: + glob "^7.1.2" + object-assign "^4.1.1" + postcss "^6.0.9" + postcss-value-parser "^3.3.0" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.1.tgz" + integrity sha512-I2Sz83ZSHybMNh02xQDK609lZ1/QOyYeuizCjzEhlMgeV/HcDJapQiH4yTqLjZss0X6/6VvKFXUeObaHpJoINw== + dependencies: + lodash.template "^4.5.0" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-idents@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-4.0.1.tgz" + integrity sha512-43S/VNdF6II0NZ31YxcvNYq4gfURlPAAsJW/z84avBXQCaP4I4qRHUH18slW/SOlJbcxxCobflPNUApYDddS7A== + dependencies: + cssnano-util-same-parent "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@^6.5.0: + version "6.7.0" + resolved "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + autoprefixer "^9.6.1" + browserslist "^4.6.4" + caniuse-lite "^1.0.30000981" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.4.0" + postcss "^7.0.17" + postcss-attribute-case-insensitive "^4.0.1" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.3" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.8" + postcss-custom-properties "^8.0.11" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-idents@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-4.0.2.tgz" + integrity sha512-Tz70Ri10TclPoCtFfftjFVddx3fZGUkr0dEDbIEfbYhFUOFQZZ77TEqRrU0e6TvAvF+Wa5VVzYTpFpq0uwFFzw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-round-subpixels@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/postcss-round-subpixels/-/postcss-round-subpixels-1.2.0.tgz" + integrity sha1-4h1qxZUuGF+b3ACLlPAE/lCdChE= + dependencies: + postcss "^5.0.2" + postcss-value-parser "^3.1.2" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz" + integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + dependencies: + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-unprefix@^2.1.3: + version "2.1.4" + resolved "https://registry.npmjs.org/postcss-unprefix/-/postcss-unprefix-2.1.4.tgz" + integrity sha512-s+muBiGIMx3RvgPTtPBnSrfvIBHJ2Zx16QZf/VDB/sAxdYP6FIzci8d1gLh0+9psu5W6zVtCbU5micNt6Zh3cg== + dependencies: + autoprefixer "^9.4.3" + known-css-properties "^0.11.0" + normalize-range "^0.1.2" + postcss-selector-parser "^5.0.0" + postcss-value-parser "^3.3.1" + pseudo-classes "^1.0.0" + pseudo-elements "^1.1.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.1.2, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-zindex@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-4.0.1.tgz" + integrity sha512-d/8BlQcUdEugZNRM9AdCA2V4fqREUtn/wcixLN3L6ITgc2P/FMcVVYz8QZkhItWT9NB5qr8wuN2dJCE4/+dlrA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss@>=5.0.0: + version "8.1.7" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.1.7.tgz" + integrity sha512-llCQW1Pz4MOPwbZLmOddGM9eIJ8Bh7SZ2Oj5sxZva77uVaotYDsYTch1WBTNu7fUY0fpWp0fdt7uW40D4sRiiQ== + dependencies: + colorette "^1.2.1" + line-column "^1.0.2" + nanoid "^3.1.16" + source-map "^0.6.1" + +postcss@^5.0.2: + version "5.2.18" + resolved "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1, postcss@^6.0.10, postcss@^6.0.9: + version "6.0.23" + resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.18" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz" + integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +pretty-bytes@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz" + integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== + +pretty-hrtime@^0.2.0: + version "0.2.2" + resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-0.2.2.tgz" + integrity sha1-1P2INR46R0H4Fzr31qS4RvmJXAA= + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +private@^0.1.6, private@^0.1.8, private@~0.1.5: + version "0.1.8" + resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/process/-/process-0.5.2.tgz" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" + integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-polyfill@^8.1.0: + version "8.1.3" + resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz" + integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-middleware@^0.5.0: + version "0.5.1" + resolved "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.5.1.tgz" + integrity sha1-2iTV1Ywd3xPa0jfH7KUDhJ6uqQM= + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudo-classes@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/pseudo-classes/-/pseudo-classes-1.0.0.tgz" + integrity sha1-YKabZzlcNv8RnE0chuGYF4Uga5Y= + +pseudo-elements@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pseudo-elements/-/pseudo-elements-1.1.0.tgz" + integrity sha1-m6bdisPOHz19NtQ1WqPijQg5Hyg= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.4.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3, pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/qs/-/qs-2.2.4.tgz" + integrity sha1-Lp+800tUDjQhySTs0B6QqpdTGcg= + +qs@6.2.3: + version "6.2.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz" + integrity sha1-HPyyXBCpsrSDBT/zn138kjOQjP4= + +qs@~2.2.3: + version "2.2.5" + resolved "https://registry.npmjs.org/qs/-/qs-2.2.5.tgz" + integrity sha1-EIirr53MCuWuRbcJ5sa1iIsjkjw= + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +query-string@^6.8.1: + version "6.8.3" + resolved "https://registry.npmjs.org/query-string/-/query-string-6.8.3.tgz" + integrity sha512-llcxWccnyaWlODe7A9hRjkvdCKamEKTh+wH8ITdTc3OhchaqUZteiSCX/2ablWHVrkVIe04dntnaZJ7BdyW0lQ== + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz" + integrity sha1-l4IwoValVI9C7vFN4i0PT2EAg9E= + dependencies: + bytes "1" + iconv-lite "0.4.4" + +raw-body@^2.3.2: + version "2.4.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rcedit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/rcedit/-/rcedit-2.0.0.tgz" + integrity sha512-XcFGyEBjhWSsud+R8elwQtGBbVkCf7tAiad+nXo5jc6l2rMf46NfGNwjnmBNneBIZDfq+Npf8lwP371JTONfrw== + +rcfinder@^0.1.6: + version "0.1.9" + resolved "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz" + integrity sha1-8+gPOH3fmugK4wpBADKWQuroERU= + dependencies: + lodash.clonedeep "^4.3.2" + +rcloader@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/rcloader/-/rcloader-0.1.4.tgz" + integrity sha1-0MkC8ERJg6LuWmkHk3xqecpwRQk= + dependencies: + lodash "^3.0.1" + rcfinder "^0.1.6" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read@~1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", "readable-stream@2 || 3", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@^1.0.27-1, readable-stream@~1.0.17, readable-stream@~1.0.2, readable-stream@~1.0.24, readable-stream@~1.0.26: + version "1.0.34" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.5.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz" + integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +recast@~0.11.12: + version "0.11.23" + resolved "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz" + integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regenerate-unicode-properties@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.3: + version "0.13.3" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + dependencies: + private "^0.1.6" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-tree@^0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.13.tgz" + integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^4.5.4: + version "4.6.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz" + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== + +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz" + integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz" + integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz" + integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== + dependencies: + lodash "^4.17.11" + +request-promise-native@^1.0.5: + version "1.0.7" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0: + version "2.88.0" + resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz" + integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= + dependencies: + value-or-function "^3.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.4.0: + version "1.17.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +resp-modifier@6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz" + integrity sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08= + dependencies: + debug "^2.2.0" + minimatch "^3.0.2" + +responselike@1.0.2, responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2.6.3, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.4.0, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz" + integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz" + integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k= + dependencies: + once "^1.3.0" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rusha@^0.8.13: + version "0.8.13" + resolved "https://registry.npmjs.org/rusha/-/rusha-0.8.13.tgz" + integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo= + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz" + integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI= + +rx@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= + +rxjs@^5.5.6: + version "5.5.12" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz" + integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== + dependencies: + symbol-observable "1.0.1" + +rxjs@^6.4.0: + version "6.5.3" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.0, sanitize-filename@^1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sass-lint@^1.12.0: + version "1.13.1" + resolved "https://registry.npmjs.org/sass-lint/-/sass-lint-1.13.1.tgz" + integrity sha512-DSyah8/MyjzW2BWYmQWekYEKir44BpLqrCFsgs9iaWiVTcwZfwXHF586hh3D1n+/9ihUNMfd8iHAyb9KkGgs7Q== + dependencies: + commander "^2.8.1" + eslint "^2.7.0" + front-matter "2.1.2" + fs-extra "^3.0.1" + glob "^7.0.0" + globule "^1.0.0" + gonzales-pe-sl "^4.2.3" + js-yaml "^3.5.4" + known-css-properties "^0.3.0" + lodash.capitalize "^4.1.0" + lodash.kebabcase "^4.0.0" + merge "^1.2.0" + path-is-absolute "^1.0.0" + util "^0.10.3" + +sass-unused@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/sass-unused/-/sass-unused-0.3.0.tgz" + integrity sha512-fGNcUpDeSFwnN+BTQ251iM77Py8awPXc96vSE3TpvMcgbC90IrohonRb4oxWX/KzHpezkmUddS8/t04R+yIB8w== + dependencies: + glob "^7.0.5" + gonzales-pe "^4.2.3" + +sass@^1.26.3: + version "1.30.0" + resolved "https://registry.npmjs.org/sass/-/sass-1.30.0.tgz" + integrity sha512-26EUhOXRLaUY7+mWuRFqGeGGNmhB1vblpTENO1Z7mAzzIZeVxZr9EZoaY1kyGLFWdSOZxRMAufiN2mkbO6dAlw== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.3: + version "3.1.11" + resolved "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +schema-utils@^0.4.0: + version "0.4.7" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5: + version "2.6.5" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +seek-bzip@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz" + integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w= + dependencies: + commander "~2.8.1" + +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz" + integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + dependencies: + sver-compat "^1.5.0" + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +semver-truncate@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz" + integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^4.1.0: + version "4.3.6" + resolved "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" + integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.16.2: + version "0.16.2" + resolved "https://registry.npmjs.org/send/-/send-0.16.2.tgz" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz" + integrity sha1-kM/xnQLgcCf9dn9erT57ldHnOAw= + +serialize-error@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-3.0.0.tgz" + integrity sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A== + +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" + +serve-index@1.9.1, serve-index@^1.1.4: + version "1.9.1" + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.13.2, serve-static@^1.3.0: + version "1.13.2" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +server-destroy@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz" + integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz" + integrity sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg= + +sigmund@^1.0.1, sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz" + integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= + +socket.io-client@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz" + integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.2.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.2.0" + to-array "0.1.4" + +socket.io-client@^2.0.4: + version "2.3.0" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~4.1.0" + engine.io-client "~3.4.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz" + integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz" + integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== + dependencies: + debug "~3.1.0" + engine.io "~3.2.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.1.1" + socket.io-parser "~3.2.0" + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz" + integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= + dependencies: + sort-keys "^1.0.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@~0.5.12: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.1.38: + version "0.1.43" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz" + integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz" + integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +ssh2-streams@~0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.2.1.tgz" + integrity sha512-3zCOsmunh1JWgPshfhKmBCL3lUtHPoh+a/cyQ49Ft0Q0aF7xgN06b76L+oKtFi0fgO57FLjFztb1GlJcEZ4a3Q== + dependencies: + asn1 "~0.2.0" + semver "^5.1.0" + streamsearch "~0.1.2" + +ssh2@~0.6.1: + version "0.6.2" + resolved "https://registry.npmjs.org/ssh2/-/ssh2-0.6.2.tgz" + integrity sha512-DJ+dOhXEEsmNpcQTI0x69FS++JH6qqL/ltEHf01pI1SSLMAcmD+hL4jRwvHjPwynPsmSUbHJ/WIZYzROfqZWjA== + dependencies: + ssh2-streams "~0.2.0" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-trace@0.0.10, stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-consume@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz" + integrity sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg== + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +stream-throttle@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz" + integrity sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM= + dependencies: + commander "^2.2.0" + limiter "^1.0.5" + +streamsearch@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + +strictdom@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strictdom/-/strictdom-1.0.1.tgz" + integrity sha1-GJ3pFkn3PUTVm4Qy76aO+dJllGA= + +string-replace-webpack-plugin@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/string-replace-webpack-plugin/-/string-replace-webpack-plugin-0.1.3.tgz" + integrity sha1-c8ZX51nWbP6Arh4M8JGqJW0OcVw= + dependencies: + async "~0.2.10" + loader-utils "~0.2.3" + optionalDependencies: + css-loader "^0.9.1" + file-loader "^0.8.1" + style-loader "^0.8.3" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trim@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz" + integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.13.0" + function-bind "^1.1.1" + +string.prototype.trimleft@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" + integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= + dependencies: + ansi-regex "^0.2.1" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz" + integrity sha1-hbiGLzhEtabV7IRnqTWYFzo295Q= + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@~1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" + integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E= + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +style-loader@^0.8.3: + version "0.8.3" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-0.8.3.tgz" + integrity sha1-9Pkut9tjdodI8VBlzWcA9aHIU1c= + dependencies: + loader-utils "^0.2.5" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +sumchecker@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.0.tgz" + integrity sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ== + dependencies: + debug "^4.1.0" + +supports-color@6.1.0, supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" + integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz" + integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +svgo@^1.0.0, svgo@^1.0.5: + version "1.3.0" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz" + integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.33" + csso "^3.5.1" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-observable@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz" + integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.npmjs.org/table/-/table-3.8.3.tgz" + integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8= + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar-stream@~0.4.0: + version "0.4.7" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-0.4.7.tgz" + integrity sha1-Hx0s6evHtCdlJDyg6PG3v9oKrc0= + dependencies: + bl "^0.9.0" + end-of-stream "^1.0.0" + readable-stream "^1.0.27-1" + xtend "^4.0.0" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempfile@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz" + integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= + dependencies: + temp-dir "^1.0.0" + uuid "^3.0.1" + +ternary-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ternary-stream/-/ternary-stream-3.0.0.tgz" + integrity sha512-oIzdi+UL/JdktkT+7KU5tSIQjj8pbShj3OASuvDEhm0NT5lppsm7aXWAmAq4/QMaBIyfuEcNLbAQA+HpaISobQ== + dependencies: + duplexify "^4.1.1" + fork-stream "^0.0.4" + merge-stream "^2.0.0" + through2 "^3.0.1" + +terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.3: + version "1.4.4" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^3.1.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.0.0, terser@^4.1.2: + version "4.3.1" + resolved "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz" + integrity sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +tfunk@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz" + integrity sha1-OORBT8ZJd9h6/apy+sttKfgve1s= + dependencies: + chalk "^1.1.1" + object-path "^0.9.0" + +through2-concurrent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/through2-concurrent/-/through2-concurrent-2.0.0.tgz" + integrity sha512-R5/jLkfMvdmDD+seLwN7vB+mhbqzWop5fAjx5IX8/yQq7VhBhzDmhXgaHAOnhnWkCpRMM7gToYHycB0CS/pd+A== + dependencies: + through2 "^2.0.0" + +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@*, through2@3.0.1, through2@^3.0.0, through2@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + +through2@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@^0.4.1, through2@~0.4.2: + version "0.4.2" + resolved "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz" + integrity sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s= + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +through2@^0.5.0, through2@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz" + integrity sha1-390BLrnHAOIyP9M084rGIqs3Lac= + dependencies: + readable-stream "~1.0.17" + xtend "~3.0.0" + +through2@^0.6.1, through2@~0.6.1: + version "0.6.5" + resolved "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz" + integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/through2/-/through2-0.3.0.tgz" + integrity sha1-LR0oyNHa+NnFy3jwppNDxrhkLZc= + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +through@^2.3.6, through@^2.3.8, through@~2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz" + integrity sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo= + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz" + integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timm@^1.6.1: + version "1.6.2" + resolved "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz" + integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-lr@0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.1.4.tgz" + integrity sha1-bkHX5n39CHjl4LN+N6BtZ+MJ/00= + dependencies: + body-parser "~1.8.0" + debug "~0.8.1" + faye-websocket "~0.7.2" + parseurl "~1.3.0" + qs "~2.2.3" + +tinycolor2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + +tmp-promise@^1.0.5: + version "1.1.0" + resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-1.1.0.tgz" + integrity sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw== + dependencies: + bluebird "^3.5.0" + tmp "0.1.0" + +tmp@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz" + integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz" + integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= + dependencies: + through2 "^2.0.3" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@^2.4.3: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz" + integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= + dependencies: + escape-string-regexp "^1.0.2" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +trim@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + dependencies: + utf8-byte-length "^1.0.1" + +tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-is@~1.5.1: + version "1.5.7" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz" + integrity sha1-uTaKWTzG730GReeLL0xky+zQXpA= + dependencies: + media-typer "0.3.0" + mime-types "~2.0.9" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +ua-parser-js@^0.7.18: + version "0.7.21" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-template-string-loader@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/uglify-template-string-loader/-/uglify-template-string-loader-1.1.1.tgz" + integrity sha512-EHJx8m0aIHlwX5xlJd2xPYIFvLrPkVK5X8zpVxSNTmu7KoT2eSg1TNlwZS+JS65+dwJXC4rC5mc+F4UVe2rckw== + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unbzip2-stream@^1.0.9: + version "1.3.3" + resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz" + integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +underscore@~1.8.3: + version "1.8.3" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz" + integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= + +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz" + integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + +undertaker@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz" + integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz" + integrity sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs= + +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unused-files-webpack-plugin@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/unused-files-webpack-plugin/-/unused-files-webpack-plugin-3.4.0.tgz" + integrity sha512-cmukKOBdIqaM1pqThY0+jp+mYgCVyzrD8uRbKEucQwIGZcLIRn+gSRiQ7uLjcDd3Zba9NUxVGyYa7lWM4UCGeg== + dependencies: + babel-runtime "^7.0.0-beta.3" + glob-all "^3.1.0" + semver "^5.5.0" + util.promisify "^1.0.0" + warning "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz" + integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= + dependencies: + os-homedir "^1.0.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +utif@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" + integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + dependencies: + pako "^1.0.5" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.10.3: + version "0.10.4" + resolved "https://registry.npmjs.org/util/-/util-0.10.4.tgz" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +v8-compile-cache@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz" + integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz" + integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + dependencies: + user-home "^1.1.1" + +v8flags@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== + dependencies: + homedir-polyfill "^1.0.1" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz" + integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= + +vendors@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz" + integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-buffer@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-0.0.0.tgz" + integrity sha1-0ZeoJLrcsRzM+WQ6yRviTUPtqNs= + dependencies: + bl "^0.7.0" + through2 "^0.4.1" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz" + integrity sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY= + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz" + integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== + dependencies: + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-source-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-0.1.1.tgz" + integrity sha1-pTpPIaB6I0aV4EwnA/nxtbkIRZU= + dependencies: + through2 "~0.3.0" + vinyl "~0.2.2" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz" + integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" + +vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz" + integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= + dependencies: + source-map "^0.5.1" + +vinyl@*, vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz" + integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vinyl@^0.2.1, vinyl@~0.2.2: + version "0.2.3" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz" + integrity sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI= + dependencies: + clone-stats "~0.0.1" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz" + integrity sha1-LzVsh6VQolVGHza76ypbqL94SEc= + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz" + integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4= + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" + integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= + dependencies: + loose-envify "^1.0.0" + +watch@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/watch/-/watch-0.11.0.tgz" + integrity sha1-6NugkbdFZ5mjr1eXi5hud+EyBAY= + +watchpack-chokidar2@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.1: + version "1.7.2" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz" + integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-cli@^3.1.0: + version "3.3.9" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz" + integrity sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A== + dependencies: + chalk "2.4.2" + cross-spawn "6.0.5" + enhanced-resolve "4.1.0" + findup-sync "3.0.0" + global-modules "2.0.0" + import-local "2.0.0" + interpret "1.2.0" + loader-utils "1.2.3" + supports-color "6.1.0" + v8-compile-cache "2.0.3" + yargs "13.2.4" + +webpack-deep-scope-plugin@^1.6.0: + version "1.6.2" + resolved "https://registry.npmjs.org/webpack-deep-scope-plugin/-/webpack-deep-scope-plugin-1.6.2.tgz" + integrity sha512-S5ZM1i7oTIVPIS1z/Fu41tqFzaXpy8vZnwEDC9I7NLj5XD8GGrDZbDXtG5FCGkHPGxtAzF4O21DKZZ76vpBGzw== + dependencies: + deep-scope-analyser "^1.7.0" + +webpack-plugin-replace@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/webpack-plugin-replace/-/webpack-plugin-replace-1.2.0.tgz" + integrity sha512-1HA3etHpJW55qonJqv84o5w5GY7iqF8fqSHpTWdNwarj1llkkt4jT4QSvYs1hoaU8Lu5akDnq/spHHO5mXwo1w== + +webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-stream@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/webpack-stream/-/webpack-stream-5.2.1.tgz" + integrity sha512-WvyVU0K1/VB1NZ7JfsaemVdG0PXAQUqbjUNW4A58th4pULvKMQxG+y33HXTL02JvD56ko2Cub+E2NyPwrLBT/A== + dependencies: + fancy-log "^1.3.3" + lodash.clone "^4.3.2" + lodash.some "^4.2.2" + memory-fs "^0.4.1" + plugin-error "^1.0.1" + supports-color "^5.5.0" + through "^2.3.8" + vinyl "^2.1.0" + webpack "^4.26.1" + +webpack-strip-block@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/webpack-strip-block/-/webpack-strip-block-0.2.0.tgz" + integrity sha1-xg1KcD4O7uiJXn8avptf6RRoFHA= + dependencies: + loader-utils "^1.1.0" + +webpack@^4.26.1, webpack@^4.43.0: + version "4.43.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.1" + webpack-sources "^1.4.1" + +websocket-driver@>=0.3.6: + version "0.7.3" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== + +whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz" + integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.1.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +winston@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/winston/-/winston-1.0.2.tgz" + integrity sha1-NRxY4jI/ikyimkUZWqmqO0w1128= + dependencies: + async "~1.0.0" + colors "1.0.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + pkginfo "0.3.x" + stack-trace "0.0.x" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz" + integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== + dependencies: + loader-utils "^1.0.0" + schema-utils "^0.4.0" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" + +ws@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" + +xhr@^2.0.1: + version "2.5.0" + resolved "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" + integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + +xml2js@^0.4.5: + version "0.4.22" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz" + integrity sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw== + dependencies: + sax ">=0.6.0" + util.promisify "~1.0.0" + xmlbuilder "~11.0.0" + +xmlbuilder@^9.0.7: + version "9.0.7" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmldom@0.1.x: + version "0.1.27" + resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz" + integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" + integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + dependencies: + object-keys "~0.4.0" + +xtend@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" + integrity sha1-XM50B7r2Qsunvs2laBEcST9ZZlo= + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yaml-loader@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.6.0.tgz" + integrity sha512-1bNiLelumURyj+zvVHOv8Y3dpCri0F2S+DCcmps0pA1zWRLjS+FhZQg4o3aUUDYESh73+pKZNI18bj7stpReow== + dependencies: + loader-utils "^1.4.0" + yaml "^1.8.3" + +yaml@^1.10.0, yaml@^1.8.3: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@5.0.0-security.0: + version "5.0.0-security.0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz" + integrity sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ== + dependencies: + camelcase "^3.0.0" + object.assign "^4.1.0" + +yargs-parser@^13.0.0, yargs-parser@^13.1.0, yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@13.2.4: + version "13.2.4" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz" + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" + +yargs@13.3.0: + version "13.3.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^7.1.0: + version "7.1.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz" + integrity sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g== + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "5.0.0-security.0" + +yargs@~1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz" + integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= + dependencies: + minimist "^0.1.0" + +yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +zip-stream@~0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/zip-stream/-/zip-stream-0.4.1.tgz" + integrity sha1-TqeVqM4Z6fq0mjHR0IdyFBWfA6M= + dependencies: + compress-commons "~0.1.0" + lodash "~2.4.1" + readable-stream "~1.0.26" diff --git a/package.json b/package.json index 715bf26d..f3ab2f80 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "private": true, "scripts": { "dev": "cd gulp && yarn gulp main.serveDev", + "devStandalone": "cd gulp && yarn gulp main.serveStandalone", "tslint": "cd src/js && tsc", "lint": "eslint src/js", "prettier-all": "prettier --write src/**/*.* && prettier --write gulp/**/*.*", diff --git a/res/logo_cn.png b/res/logo_cn.png new file mode 100644 index 00000000..5ef18416 Binary files /dev/null and b/res/logo_cn.png differ diff --git a/res/logo_wegame.png b/res/logo_wegame.png new file mode 100644 index 00000000..ac9092b3 Binary files /dev/null and b/res/logo_wegame.png differ diff --git a/res/puzzle_dlc_logo.png b/res/puzzle_dlc_logo.png new file mode 100644 index 00000000..1c430c82 Binary files /dev/null and b/res/puzzle_dlc_logo.png differ diff --git a/res/puzzle_dlc_logo_china.png b/res/puzzle_dlc_logo_china.png new file mode 100644 index 00000000..c45b6cdc Binary files /dev/null and b/res/puzzle_dlc_logo_china.png differ diff --git a/res/ui/building_icons/block.png b/res/ui/building_icons/block.png new file mode 100644 index 00000000..a6d914f6 Binary files /dev/null and b/res/ui/building_icons/block.png differ diff --git a/res/ui/building_icons/constant_producer.png b/res/ui/building_icons/constant_producer.png new file mode 100644 index 00000000..f7ac8afa Binary files /dev/null and b/res/ui/building_icons/constant_producer.png differ diff --git a/res/ui/building_icons/goal_acceptor.png b/res/ui/building_icons/goal_acceptor.png new file mode 100644 index 00000000..9087c155 Binary files /dev/null and b/res/ui/building_icons/goal_acceptor.png differ diff --git a/res/ui/building_tutorials/block.png b/res/ui/building_tutorials/block.png new file mode 100644 index 00000000..73925265 Binary files /dev/null and b/res/ui/building_tutorials/block.png differ diff --git a/res/ui/building_tutorials/constant_producer.png b/res/ui/building_tutorials/constant_producer.png new file mode 100644 index 00000000..8af4da33 Binary files /dev/null and b/res/ui/building_tutorials/constant_producer.png differ diff --git a/res/ui/building_tutorials/goal_acceptor.png b/res/ui/building_tutorials/goal_acceptor.png new file mode 100644 index 00000000..054783b6 Binary files /dev/null and b/res/ui/building_tutorials/goal_acceptor.png differ diff --git a/res/ui/changelog_skins/achievements.noinline.png b/res/ui/changelog_skins/achievements.noinline.png new file mode 100644 index 00000000..08bc74fc Binary files /dev/null and b/res/ui/changelog_skins/achievements.noinline.png differ diff --git a/res/ui/get_on_steam.png b/res/ui/get_on_steam.png index f8503229..5d8d11fc 100644 Binary files a/res/ui/get_on_steam.png and b/res/ui/get_on_steam.png differ diff --git a/res/ui/icons/advantage_achievements.png b/res/ui/icons/advantage_achievements.png new file mode 100644 index 00000000..55860f99 Binary files /dev/null and b/res/ui/icons/advantage_achievements.png differ diff --git a/res/ui/icons/notification_saved.png b/res/ui/icons/notification_saved.png index de7096a4..067f2c0e 100644 Binary files a/res/ui/icons/notification_saved.png and b/res/ui/icons/notification_saved.png differ diff --git a/res/ui/icons/puzzle_action_liked_no.png b/res/ui/icons/puzzle_action_liked_no.png new file mode 100644 index 00000000..7b30f81e Binary files /dev/null and b/res/ui/icons/puzzle_action_liked_no.png differ diff --git a/res/ui/icons/puzzle_action_liked_yes.png b/res/ui/icons/puzzle_action_liked_yes.png new file mode 100644 index 00000000..07b8bbcf Binary files /dev/null and b/res/ui/icons/puzzle_action_liked_yes.png differ diff --git a/res/ui/icons/puzzle_complete_indicator.png b/res/ui/icons/puzzle_complete_indicator.png new file mode 100644 index 00000000..e2c95b8b Binary files /dev/null and b/res/ui/icons/puzzle_complete_indicator.png differ diff --git a/res/ui/icons/puzzle_complete_indicator_inverse.png b/res/ui/icons/puzzle_complete_indicator_inverse.png new file mode 100644 index 00000000..f3946efc Binary files /dev/null and b/res/ui/icons/puzzle_complete_indicator_inverse.png differ diff --git a/res/ui/icons/puzzle_completion_rate.png b/res/ui/icons/puzzle_completion_rate.png new file mode 100644 index 00000000..2b07ce22 Binary files /dev/null and b/res/ui/icons/puzzle_completion_rate.png differ diff --git a/res/ui/icons/puzzle_plays.png b/res/ui/icons/puzzle_plays.png new file mode 100644 index 00000000..358b5362 Binary files /dev/null and b/res/ui/icons/puzzle_plays.png differ diff --git a/res/ui/icons/puzzle_upvotes.png b/res/ui/icons/puzzle_upvotes.png new file mode 100644 index 00000000..685d4bd7 Binary files /dev/null and b/res/ui/icons/puzzle_upvotes.png differ diff --git a/res/ui/icons/state_next_button.png b/res/ui/icons/state_next_button.png new file mode 100644 index 00000000..d6e09644 Binary files /dev/null and b/res/ui/icons/state_next_button.png differ diff --git a/res/ui/icons/unpin_shape.png b/res/ui/icons/unpin_shape.png new file mode 100644 index 00000000..b1918778 Binary files /dev/null and b/res/ui/icons/unpin_shape.png differ diff --git a/res/ui/icons/waypoint_wires.png b/res/ui/icons/waypoint_wires.png new file mode 100644 index 00000000..a6d3fd28 Binary files /dev/null and b/res/ui/icons/waypoint_wires.png differ diff --git a/res/ui/interactive_tutorial.cn.noinline/1_1_extractor.gif b/res/ui/interactive_tutorial.cn.noinline/1_1_extractor.gif new file mode 100644 index 00000000..c7208ac2 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/1_1_extractor.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/1_2_conveyor.gif b/res/ui/interactive_tutorial.cn.noinline/1_2_conveyor.gif new file mode 100644 index 00000000..8432b676 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/1_2_conveyor.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/1_3_expand.gif b/res/ui/interactive_tutorial.cn.noinline/1_3_expand.gif new file mode 100644 index 00000000..9c655ab1 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/1_3_expand.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/21_1_place_quad_painter.gif b/res/ui/interactive_tutorial.cn.noinline/21_1_place_quad_painter.gif new file mode 100644 index 00000000..ea854cf2 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/21_1_place_quad_painter.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/21_2_switch_to_wires.gif b/res/ui/interactive_tutorial.cn.noinline/21_2_switch_to_wires.gif new file mode 100644 index 00000000..78ab6fd2 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/21_2_switch_to_wires.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/21_3_place_button.gif b/res/ui/interactive_tutorial.cn.noinline/21_3_place_button.gif new file mode 100644 index 00000000..52ffb076 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/21_3_place_button.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/21_4_press_button.gif b/res/ui/interactive_tutorial.cn.noinline/21_4_press_button.gif new file mode 100644 index 00000000..5d79f1e3 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/21_4_press_button.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/2_1_place_cutter.gif b/res/ui/interactive_tutorial.cn.noinline/2_1_place_cutter.gif new file mode 100644 index 00000000..1678c0b2 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/2_1_place_cutter.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/2_2_place_trash.gif b/res/ui/interactive_tutorial.cn.noinline/2_2_place_trash.gif new file mode 100644 index 00000000..0d60fa9f Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/2_2_place_trash.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/2_3_more_cutters.gif b/res/ui/interactive_tutorial.cn.noinline/2_3_more_cutters.gif new file mode 100644 index 00000000..50ce88f9 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/2_3_more_cutters.gif differ diff --git a/res/ui/interactive_tutorial.cn.noinline/3_1_rectangles.gif b/res/ui/interactive_tutorial.cn.noinline/3_1_rectangles.gif new file mode 100644 index 00000000..81668af8 Binary files /dev/null and b/res/ui/interactive_tutorial.cn.noinline/3_1_rectangles.gif differ diff --git a/res/ui/languages/fi.svg b/res/ui/languages/fi.svg new file mode 100644 index 00000000..483fdde3 --- /dev/null +++ b/res/ui/languages/fi.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/ui/languages/he.svg b/res/ui/languages/he.svg new file mode 100644 index 00000000..aaa64e98 --- /dev/null +++ b/res/ui/languages/he.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/ui/languages/ro.svg b/res/ui/languages/ro.svg new file mode 100644 index 00000000..041ecc3f --- /dev/null +++ b/res/ui/languages/ro.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/ui/main_menu/opensea.png b/res/ui/main_menu/opensea.png new file mode 100644 index 00000000..33e2db44 Binary files /dev/null and b/res/ui/main_menu/opensea.png differ diff --git a/res/ui/puzzle_dlc_logo.png b/res/ui/puzzle_dlc_logo.png new file mode 100644 index 00000000..1c430c82 Binary files /dev/null and b/res/ui/puzzle_dlc_logo.png differ diff --git a/res/ui/puzzle_dlc_logo_china.png b/res/ui/puzzle_dlc_logo_china.png new file mode 100644 index 00000000..c45b6cdc Binary files /dev/null and b/res/ui/puzzle_dlc_logo_china.png differ diff --git a/res/ui/puzzle_dlc_logo_inverse.png b/res/ui/puzzle_dlc_logo_inverse.png new file mode 100644 index 00000000..4709f5c4 Binary files /dev/null and b/res/ui/puzzle_dlc_logo_inverse.png differ diff --git a/res/ui/wegame_isbn_rating.jpg b/res/ui/wegame_isbn_rating.jpg new file mode 100644 index 00000000..581dd744 Binary files /dev/null and b/res/ui/wegame_isbn_rating.jpg differ diff --git a/res_raw/sounds/music/puzzle-full.mp3 b/res_raw/sounds/music/puzzle-full.mp3 new file mode 100644 index 00000000..a2c0d80a Binary files /dev/null and b/res_raw/sounds/music/puzzle-full.mp3 differ diff --git a/res_raw/sprites/blueprints/block.png b/res_raw/sprites/blueprints/block.png new file mode 100644 index 00000000..5a27786e Binary files /dev/null and b/res_raw/sprites/blueprints/block.png differ diff --git a/res_raw/sprites/blueprints/constant_producer.png b/res_raw/sprites/blueprints/constant_producer.png new file mode 100644 index 00000000..417a7886 Binary files /dev/null and b/res_raw/sprites/blueprints/constant_producer.png differ diff --git a/res_raw/sprites/blueprints/goal_acceptor.png b/res_raw/sprites/blueprints/goal_acceptor.png new file mode 100644 index 00000000..58097279 Binary files /dev/null and b/res_raw/sprites/blueprints/goal_acceptor.png differ diff --git a/res_raw/sprites/blueprints/underground_belt_exit-tier2.png b/res_raw/sprites/blueprints/underground_belt_exit-tier2.png index be78107b..15dc6b86 100644 Binary files a/res_raw/sprites/blueprints/underground_belt_exit-tier2.png and b/res_raw/sprites/blueprints/underground_belt_exit-tier2.png differ diff --git a/res_raw/sprites/buildings/block.png b/res_raw/sprites/buildings/block.png new file mode 100644 index 00000000..90855c82 Binary files /dev/null and b/res_raw/sprites/buildings/block.png differ diff --git a/res_raw/sprites/buildings/constant_producer.png b/res_raw/sprites/buildings/constant_producer.png new file mode 100644 index 00000000..9ea15eaf Binary files /dev/null and b/res_raw/sprites/buildings/constant_producer.png differ diff --git a/res_raw/sprites/buildings/goal_acceptor.png b/res_raw/sprites/buildings/goal_acceptor.png new file mode 100644 index 00000000..17fa224f Binary files /dev/null and b/res_raw/sprites/buildings/goal_acceptor.png differ diff --git a/res_raw/sprites/create_blueprint_previews.py b/res_raw/sprites/create_blueprint_previews.py index 96688fe4..714804d3 100644 --- a/res_raw/sprites/create_blueprint_previews.py +++ b/res_raw/sprites/create_blueprint_previews.py @@ -41,7 +41,7 @@ def process_image(data, outfilename, src_image): if isWire: targetR = 255 targetG = 104 - targetB = 232 + targetB = 232 for x in range(img.width): for y in range(img.height): @@ -85,6 +85,8 @@ def generate_blueprint_sprite(infilename, outfilename): buildings = listdir("buildings") for buildingId in buildings: + if not ".png" in buildingId: + continue if "hub" in buildingId: continue if "wire-" in buildingId: diff --git a/res_raw/sprites/misc/waypoint_wires.png b/res_raw/sprites/misc/waypoint_wires.png new file mode 100644 index 00000000..a6d3fd28 Binary files /dev/null and b/res_raw/sprites/misc/waypoint_wires.png differ diff --git a/shapez.code-workspace b/shapez.code-workspace index e8e7e5b3..8cd13e00 100644 --- a/shapez.code-workspace +++ b/shapez.code-workspace @@ -15,6 +15,11 @@ "vetur.format.defaultFormatter.ts": "vscode-typescript", "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, - "files.trimTrailingWhitespace": true + "files.trimTrailingWhitespace": true, + "workbench.colorCustomizations": { + "activityBar.background": "#163328", + "titleBar.activeBackground": "#1F4738", + "titleBar.activeForeground": "#F7FBFA" + } } } \ No newline at end of file diff --git a/src/css/animations.scss b/src/css/animations.scss index 3e9b22f7..16ba7fd1 100644 --- a/src/css/animations.scss +++ b/src/css/animations.scss @@ -1,13 +1,19 @@ -@include MakeAnimationWrappedEvenOdd(0.2s ease-in-out, "changeAnim") { - 0% { - transform: scale(1, 1); +@each $animName in ("changeAnimEven", "changeAnimOdd") { + @keyframes #{$animName} { + 0% { + transform: scale(1, 1); + } + + 50% { + transform: scale(1.03, 1.03); + } + + 100% { + transform: scale(1, 1); + } } - 50% { - transform: scale(1.03, 1.03); - } - - 100% { - transform: scale(1, 1); + .#{$animName} { + animation: $animName 0.2s ease-in-out; } } diff --git a/src/css/changelog_skins.scss b/src/css/changelog_skins.scss new file mode 100644 index 00000000..bcc88ae2 --- /dev/null +++ b/src/css/changelog_skins.scss @@ -0,0 +1,18 @@ +[data-changelog-skin="achievements"] { + background: #f8f8f8; + + @include DarkThemeOverride { + background: rgba(0, 10, 20, 0.2); + } + + @include S(border-radius, 5px); + &::before { + content: " "; + width: 100%; + display: block; + background: uiResource("changelog_skins/achievements.noinline.png") center center / cover no-repeat !important; + @include S(height, 80px); + @include S(border-radius, 5px); + @include S(margin-bottom, 5px); + } +} diff --git a/src/css/ingame_hud/beta_overlay.scss b/src/css/ingame_hud/beta_overlay.scss index caadd127..08eba960 100644 --- a/src/css/ingame_hud/beta_overlay.scss +++ b/src/css/ingame_hud/beta_overlay.scss @@ -1,6 +1,6 @@ #ingame_HUD_BetaOverlay { position: fixed; - @include S(top, 10px); + @include S(top, 70px); left: 50%; transform: translateX(-50%); color: $colorRedBright; diff --git a/src/css/ingame_hud/buildings_toolbar.scss b/src/css/ingame_hud/buildings_toolbar.scss index 54205d64..3af5edf4 100644 --- a/src/css/ingame_hud/buildings_toolbar.scss +++ b/src/css/ingame_hud/buildings_toolbar.scss @@ -37,7 +37,7 @@ .building { @include S(width, 30px); - @include S(height, 22px); + @include S(height, 30px); background-size: 45%; &:not(.unlocked) { @@ -49,65 +49,98 @@ } .building { - color: $accentColorDark; display: flex; - flex-direction: column; + @include S(width, 40px); position: relative; - align-items: center; - justify-content: center; - @include S(padding, 5px); - @include S(padding-bottom, 1px); - @include S(width, 35px); @include S(height, 40px); + .icon { + color: $accentColorDark; + display: flex; + flex-direction: column-reverse; + position: relative; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + @include S(border-radius, $globalBorderRadius); - background: center center / 70% no-repeat; + background: center center / 70% no-repeat; + } &:not(.unlocked) { - @include S(width, 20px); - opacity: 0.15; - background-image: none !important; - - &::before { - content: " "; - - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 4; - & { - /* @load-async */ - background: uiResource("locked_building.png") center center / #{D(20px)} #{D(20px)} - no-repeat; + @include S(width, 25px); + .icon { + opacity: 0.15; + } + &.editor { + .icon { + pointer-events: all; + cursor: pointer; + &:hover { + background-color: rgba(22, 30, 68, 0.1); + } + } + } + &:not(.editor) { + .icon { + background-image: uiResource("locked_building.png") !important; } } } - @include S(border-radius, $globalBorderRadius); - &.unlocked { - pointer-events: all; - transition: all 50ms ease-in-out; - transition-property: background-color, transform; + .icon { + pointer-events: all; + transition: all 50ms ease-in-out; + transition-property: background-color, transform; + cursor: pointer; - cursor: pointer; - &:hover { - background-color: rgba(30, 40, 90, 0.1); + &:hover { + background-color: rgba(30, 40, 90, 0.1); + } + + &.pressed { + transform: scale(0.9) !important; + } } - - &.pressed { - transform: scale(0.9) !important; - } - &.selected { // transform: scale(1.05); background-color: rgba(lighten($colorBlueBright, 9), 0.4); + @include S(border-radius, 2px); .keybinding { color: #111; } } + + .puzzle-lock { + & { + /* @load-async */ + background: uiResource("locked_building.png") center center / 90% no-repeat; + } + + display: grid; + grid-auto-flow: column; + + position: absolute; + @include S(top, -15px); + left: 50%; + transform: translateX(-50%) !important; + transition: all 0.12s ease-in-out; + transition-property: opacity, transform; + + cursor: pointer; + pointer-events: all; + + @include S(width, 12px); + @include S(height, 12px); + + &:hover { + opacity: 0.5; + } + } } } } diff --git a/src/css/ingame_hud/dialogs.scss b/src/css/ingame_hud/dialogs.scss index ad3f76d0..cc742d42 100644 --- a/src/css/ingame_hud/dialogs.scss +++ b/src/css/ingame_hud/dialogs.scss @@ -67,6 +67,14 @@ * { color: #fff; } + + display: flex; + flex-direction: column; + + .text { + text-transform: uppercase; + @include S(margin-bottom, 10px); + } } > .dialogInner { @@ -168,6 +176,11 @@ &.errored { background-color: rgb(250, 206, 206); + + &::placeholder { + color: #fff; + opacity: 0.8; + } } } diff --git a/src/css/ingame_hud/pinned_shapes.scss b/src/css/ingame_hud/pinned_shapes.scss index 671f5aa5..c9a39536 100644 --- a/src/css/ingame_hud/pinned_shapes.scss +++ b/src/css/ingame_hud/pinned_shapes.scss @@ -19,7 +19,6 @@ color: #333438; &.removable { - cursor: pointer; pointer-events: all; } @@ -86,6 +85,28 @@ } } + > .unpinButton { + @include S(width, 8px); + @include S(height, 8px); + position: absolute; + opacity: 0.7; + @include S(top, 3px); + @include S(left, -7px); + @include DarkThemeInvert; + @include IncreasedClickArea(2px); + transition: opacity 0.12s ease-in-out; + z-index: 100; + + &:hover { + opacity: 0.8; + } + + & { + /* @load-async */ + background: uiResource("icons/unpin_shape.png") center center / 80% no-repeat; + } + } + &.goal, &.blueprint { .amountLabel::after { diff --git a/src/css/ingame_hud/puzzle_back_to_menu.scss b/src/css/ingame_hud/puzzle_back_to_menu.scss new file mode 100644 index 00000000..564b592e --- /dev/null +++ b/src/css/ingame_hud/puzzle_back_to_menu.scss @@ -0,0 +1,41 @@ +#ingame_HUD_PuzzleBackToMenu { + position: absolute; + @include S(top, 10px); + @include S(left, 0px); + + display: flex; + flex-direction: column; + align-items: flex-start; + backdrop-filter: blur(D(1px)); + padding: D(3px); + + > .button { + @include PlainText; + pointer-events: all; + cursor: pointer; + position: relative; + color: #333438; + transition: all 0.12s ease-in-out; + transition-property: opacity, transform; + text-transform: uppercase; + @include PlainText; + @include S(width, 30px); + @include S(height, 30px); + + @include DarkThemeInvert; + + opacity: 1; + &:hover { + opacity: 0.9 !important; + } + + &.pressed { + transform: scale(0.95) !important; + } + + & { + /* @load-async */ + background: uiResource("icons/state_back_button.png") center center / D(15px) no-repeat; + } + } +} diff --git a/src/css/ingame_hud/puzzle_complete_notification.scss b/src/css/ingame_hud/puzzle_complete_notification.scss new file mode 100644 index 00000000..a35da83d --- /dev/null +++ b/src/css/ingame_hud/puzzle_complete_notification.scss @@ -0,0 +1,175 @@ +#ingame_HUD_PuzzleCompleteNotification { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: auto; + pointer-events: all; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + + & { + /* @load-async */ + background: rgba(#333538, 0.95) uiResource("dialog_bg_pattern.png") top left / #{D(10px)} repeat; + } + + @include InlineAnimation(0.1s ease-in-out) { + 0% { + opacity: 0; + } + } + + > .dialog { + // background: rgba(#222428, 0.5); + @include S(border-radius, $globalBorderRadius); + @include S(padding, 30px); + + @include InlineAnimation(0.5s ease-in-out) { + 0% { + opacity: 0; + } + } + + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + color: #fff; + text-align: center; + + > .title { + @include SuperHeading; + text-transform: uppercase; + @include S(font-size, 30px); + @include S(margin-bottom, 40px); + color: $colorGreenBright !important; + + @include InlineAnimation(0.5s ease-in-out) { + 0% { + transform: translateY(-50vh); + } + 50% { + transform: translateY(5vh); + } + 75% { + transform: translateY(-2vh); + } + } + } + + > .contents { + @include InlineAnimation(0.5s ease-in-out) { + 0% { + transform: translateX(-100vw); + } + 50% { + transform: translateX(5vw); + } + + 75% { + transform: translateX(-2vw); + } + } + + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + + > .stepLike { + display: flex; + flex-direction: column; + @include S(margin-bottom, 10px); + @include SuperSmallText; + + > .buttons { + display: flex; + align-items: center; + justify-content: center; + @include S(margin, 10px, 0); + + > button { + @include S(width, 60px); + @include S(height, 60px); + @include S(margin, 0, 10px); + box-sizing: border-box; + border-radius: 50%; + transition: opacity 0.12s ease-in-out, background-color 0.12s ease-in-out; + @include IncreasedClickArea(0px); + + &.liked-yes { + /* @load-async */ + background: uiResource("icons/puzzle_action_liked_yes.png") center 55% / 60% + no-repeat; + } + + &:hover:not(.active) { + opacity: 0.5 !important; + } + + &.active { + background-color: $colorRedBright !important; + @include InlineAnimation(0.3s ease-in-out) { + 0% { + transform: scale(0); + } + 50% { + transform: scale(1.2); + } + 100% { + transform: scale(1); + } + } + } + &:not(.active) { + opacity: 0.4; + } + } + } + } + + > .buttonBar { + display: flex; + @include S(margin-top, 20px); + + button.continue { + background: #555; + } + + button.menu { + background: #555; + } + + button.nextPuzzle { + background-color: $colorGreenBright; + } + + > button { + @include S(min-width, 100px); + @include S(padding, 8px, 16px); + @include S(margin, 0, 6px); + @include IncreasedClickArea(0px); + } + } + + > .actions { + position: absolute; + @include S(bottom, 40px); + + display: grid; + @include S(grid-gap, 15px); + grid-auto-flow: column; + + button { + @include SuperSmallText; + } + .report { + background-color: $accentColorDark; + } + } + } + } +} diff --git a/src/css/ingame_hud/puzzle_dlc_logo.scss b/src/css/ingame_hud/puzzle_dlc_logo.scss new file mode 100644 index 00000000..c2a64607 --- /dev/null +++ b/src/css/ingame_hud/puzzle_dlc_logo.scss @@ -0,0 +1,24 @@ +#ingame_HUD_PuzzleDLCLogo { + position: absolute; + @include S(width, 120px); + @include S(height, 40px); + @include S(left, 40px); + @include S(top, 7px); + + & { + /* @load-async */ + background: uiResource("puzzle_dlc_logo.png") center center / contain no-repeat; + } + + @include DarkThemeOverride { + & { + /* @load-async */ + background: uiResource("puzzle_dlc_logo_inverse.png") center center / contain no-repeat; + } + } + + &.china { + /* @load-async */ + background: uiResource("puzzle_dlc_logo_china.png") center center / contain no-repeat !important; + } +} diff --git a/src/css/ingame_hud/puzzle_editor_controls.scss b/src/css/ingame_hud/puzzle_editor_controls.scss new file mode 100644 index 00000000..7ce76b41 --- /dev/null +++ b/src/css/ingame_hud/puzzle_editor_controls.scss @@ -0,0 +1,36 @@ +#ingame_HUD_PuzzleEditorControls { + position: absolute; + + @include S(top, 70px); + @include S(left, 10px); + + display: flex; + flex-direction: column; + @include SuperDuperSmallText; + @include S(width, 200px); + + > span { + @include S(margin-bottom, 10px); + + strong { + font-weight: bold; + } + } + + @include DarkThemeInvert; +} + +#ingame_HUD_PuzzleEditorTitle { + position: absolute; + + @include S(top, 18px); + left: 50%; + transform: translateX(-50%); + text-transform: uppercase; + @include Heading; + text-align: center; + + @include DarkThemeOverride { + color: #eee; + } +} diff --git a/src/css/ingame_hud/puzzle_editor_review.scss b/src/css/ingame_hud/puzzle_editor_review.scss new file mode 100644 index 00000000..523d8025 --- /dev/null +++ b/src/css/ingame_hud/puzzle_editor_review.scss @@ -0,0 +1,50 @@ +#ingame_HUD_PuzzleEditorReview { + position: absolute; + @include S(top, 17px); + @include S(right, 10px); + + display: flex; + flex-direction: column; + align-items: flex-end; + backdrop-filter: blur(D(1px)); + padding: D(3px); + + > .button { + @include ButtonText; + @include IncreasedClickArea(0px); + pointer-events: all; + cursor: pointer; + position: relative; + color: #333438; + transition: all 0.12s ease-in-out; + text-transform: uppercase; + transition-property: opacity, transform; + @include PlainText; + @include S(padding-right, 25px); + opacity: 1; + + @include DarkThemeInvert; + + &:hover { + opacity: 0.9 !important; + } + + &.pressed { + transform: scale(0.95) !important; + } + + & { + /* @load-async */ + background: uiResource("icons/state_next_button.png") right center / D(15px) no-repeat; + } + } + + > .content { + @include SuperDuperSmallText; + @include S(width, 180px); + @include S(padding-right, 25px); + text-align: right; + text-transform: uppercase; + color: $accentColorDark; + } +} diff --git a/src/css/ingame_hud/puzzle_editor_settings.scss b/src/css/ingame_hud/puzzle_editor_settings.scss new file mode 100644 index 00000000..9d093c42 --- /dev/null +++ b/src/css/ingame_hud/puzzle_editor_settings.scss @@ -0,0 +1,71 @@ +#ingame_HUD_PuzzleEditorSettings { + position: absolute; + background: $ingameHudBg; + @include S(padding, 10px); + @include S(bottom, 60px); + @include S(left, 10px); + + @include SuperSmallText; + color: #eee; + display: flex; + flex-direction: column; + @include S(border-radius, $globalBorderRadius); + + > .section { + > label { + text-transform: uppercase; + } + + .plusMinus { + @include S(margin-top, 5px); + display: grid; + grid-template-columns: 1fr auto auto auto; + align-items: center; + @include S(grid-gap, 5px); + + label { + @include S(margin-right, 10px); + } + + button { + @include PlainText; + @include S(padding, 0); + display: flex; + align-items: center; + justify-content: center; + @include S(width, 15px); + @include S(height, 15px); + @include IncreasedClickArea(0px); + } + + .value { + text-align: center; + @include S(min-width, 15px); + } + } + + > .buttons { + > .buttonBar { + display: flex; + align-items: center; + @include S(margin-top, 10px); + > button { + @include S(margin-right, 4px); + @include SuperSmallText; + &:last-child { + margin-right: 0; + } + } + } + + > .buildingsButton { + display: grid; + align-items: center; + @include S(margin-top, 4px); + > button { + @include SuperSmallText; + } + } + } + } +} diff --git a/src/css/ingame_hud/puzzle_next.scss b/src/css/ingame_hud/puzzle_next.scss new file mode 100644 index 00000000..ee0f664f --- /dev/null +++ b/src/css/ingame_hud/puzzle_next.scss @@ -0,0 +1,41 @@ +#ingame_HUD_PuzzleNextPuzzle { + position: absolute; + @include S(top, 17px); + @include S(right, 10px); + + display: flex; + flex-direction: column; + align-items: flex-end; + backdrop-filter: blur(D(1px)); + padding: D(3px); + + > .button { + @include ButtonText; + @include IncreasedClickArea(0px); + pointer-events: all; + cursor: pointer; + position: relative; + color: #333438; + transition: all 0.12s ease-in-out; + text-transform: uppercase; + transition-property: opacity, transform; + @include PlainText; + @include S(padding-right, 25px); + opacity: 1; + + @include DarkThemeInvert; + + &:hover { + opacity: 0.9 !important; + } + + &.pressed { + transform: scale(0.95) !important; + } + + & { + /* @load-async */ + background: uiResource("icons/state_next_button.png") right center / D(15px) no-repeat; + } + } +} diff --git a/src/css/ingame_hud/puzzle_play_metadata.scss b/src/css/ingame_hud/puzzle_play_metadata.scss new file mode 100644 index 00000000..d0675b13 --- /dev/null +++ b/src/css/ingame_hud/puzzle_play_metadata.scss @@ -0,0 +1,129 @@ +#ingame_HUD_PuzzlePlayMetadata { + position: absolute; + + @include S(top, 70px); + @include S(left, 10px); + + display: flex; + flex-direction: column; + @include S(width, 200px); + + > .info { + display: flex; + flex-direction: column; + @include SuperSmallText; + @include S(margin-bottom, 5px); + + > label { + text-transform: uppercase; + @include SuperDuperSmallText; + color: $accentColorDark; + } + > span { + display: flex; + color: darken($accentColorDark, 25); + @include SuperSmallText; + @include DarkThemeOverride { + color: lighten($accentColorDark, 15); + } + } + } + + > .plays { + display: flex; + align-items: center; + justify-self: end; + align-self: end; + flex-direction: row; + @include S(margin-bottom, 10px); + opacity: 0.8; + @include DarkThemeInvert; + @include DarkThemeOverride { + opacity: 0.8; + } + + > .downloads { + @include SuperSmallText; + color: #000; + align-self: start; + justify-self: start; + font-weight: bold; + @include S(margin-right, 10px); + @include S(padding-left, 14px); + opacity: 0.7; + display: inline-flex; + align-items: center; + justify-content: center; + + & { + /* @load-async */ + background: uiResource("icons/puzzle_plays.png") #{D(2px)} center / #{D(8px)} #{D(8px)} no-repeat; + } + } + + > .likes { + @include SuperSmallText; + align-items: center; + justify-content: center; + color: #000; + align-self: start; + justify-self: start; + font-weight: bold; + @include S(padding-left, 14px); + opacity: 0.7; + & { + /* @load-async */ + background: uiResource("icons/puzzle_upvotes.png") #{D(2px)} center / #{D(8px)} #{D(8px)} no-repeat; + } + } + } + + > .key { + button { + @include S(margin-top, 2px); + } + } + + button { + @include SuperSmallText; + align-self: start; + @include S(min-width, 50px); + + &.report { + background-color: $accentColorDark; + @include SuperDuperSmallText; + } + } + + > .buttons { + display: flex; + flex-direction: column; + + > button { + @include S(margin-bottom, 4px); + } + } +} + +#ingame_HUD_PuzzlePlayTitle { + position: absolute; + + @include S(top, 18px); + left: 50%; + transform: translateX(-50%); + text-transform: uppercase; + @include Heading; + text-align: center; + + display: flex; + flex-direction: column; + + > .name { + @include PlainText; + opacity: 0.5; + } + + @include DarkThemeOverride { + color: #eee; + } +} diff --git a/src/css/ingame_hud/puzzle_play_settings.scss b/src/css/ingame_hud/puzzle_play_settings.scss new file mode 100644 index 00000000..b53d0829 --- /dev/null +++ b/src/css/ingame_hud/puzzle_play_settings.scss @@ -0,0 +1,23 @@ +#ingame_HUD_PuzzlePlaySettings { + position: absolute; + background: $ingameHudBg; + @include S(padding, 10px); + @include S(bottom, 60px); + @include S(left, 10px); + + @include SuperSmallText; + color: #eee; + display: flex; + flex-direction: column; + @include S(border-radius, $globalBorderRadius); + + > .section { + display: grid; + @include S(grid-gap, 5px); + grid-auto-flow: row; + + > button { + @include SuperSmallText; + } + } +} diff --git a/src/css/ingame_hud/standalone_advantages.scss b/src/css/ingame_hud/standalone_advantages.scss index 065ad6ac..0e9a6bcf 100644 --- a/src/css/ingame_hud/standalone_advantages.scss +++ b/src/css/ingame_hud/standalone_advantages.scss @@ -165,5 +165,15 @@ color: #e72d2d; } } + + &.achievements { + & { + /* @load-async */ + background-image: uiResource("res/ui/icons/advantage_achievements.png"); + } + > strong { + color: #ffac0f; + } + } } } diff --git a/src/css/ingame_hud/waypoints.scss b/src/css/ingame_hud/waypoints.scss index d30c5120..e5a38705 100644 --- a/src/css/ingame_hud/waypoints.scss +++ b/src/css/ingame_hud/waypoints.scss @@ -61,6 +61,12 @@ /* @load-async */ background: uiResource("icons/waypoint.png") left 50% / #{D(8px)} no-repeat; } + + &.layer--wires { + /* @load-async */ + background-image: uiResource("icons/waypoint_wires.png"); + } + opacity: 0.7; @include S(margin-bottom, 1px); font-weight: bold; diff --git a/src/css/main.scss b/src/css/main.scss index 4f6a771e..1ac4f537 100644 --- a/src/css/main.scss +++ b/src/css/main.scss @@ -19,7 +19,9 @@ @import "application_error"; @import "textual_game_state"; @import "adinplay"; +@import "changelog_skins"; +@import "states/wegame_splash"; @import "states/preload"; @import "states/main_menu"; @import "states/ingame"; @@ -28,6 +30,7 @@ @import "states/about"; @import "states/mobile_warning"; @import "states/changelog"; +@import "states/puzzle_menu"; @import "ingame_hud/buildings_toolbar"; @import "ingame_hud/building_placer"; @@ -54,12 +57,22 @@ @import "ingame_hud/sandbox_controller"; @import "ingame_hud/standalone_advantages"; @import "ingame_hud/cat_memes"; +@import "ingame_hud/puzzle_back_to_menu"; +@import "ingame_hud/puzzle_editor_review"; +@import "ingame_hud/puzzle_dlc_logo"; +@import "ingame_hud/puzzle_editor_controls"; +@import "ingame_hud/puzzle_editor_settings"; +@import "ingame_hud/puzzle_play_settings"; +@import "ingame_hud/puzzle_play_metadata"; +@import "ingame_hud/puzzle_complete_notification"; +@import "ingame_hud/puzzle_next"; // prettier-ignore -$elements: -// Base +$elements: +// Base ingame_Canvas, ingame_VignetteOverlay, +ingame_HUD_PuzzleDLCLogo, // Ingame overlays ingame_HUD_Waypoints, @@ -70,6 +83,15 @@ ingame_HUD_PlacerVariants, ingame_HUD_PinnedShapes, ingame_HUD_GameMenu, ingame_HUD_KeybindingOverlay, +ingame_HUD_PuzzleBackToMenu, +ingame_HUD_PuzzleNextPuzzle, +ingame_HUD_PuzzleEditorReview, +ingame_HUD_PuzzleEditorControls, +ingame_HUD_PuzzleEditorTitle, +ingame_HUD_PuzzleEditorSettings, +ingame_HUD_PuzzlePlaySettings, +ingame_HUD_PuzzlePlayMetadata, +ingame_HUD_PuzzlePlayTitle, ingame_HUD_Notifications, ingame_HUD_DebugInfo, ingame_HUD_EntityDebugger, @@ -93,6 +115,7 @@ ingame_HUD_Statistics, ingame_HUD_ShapeViewer, ingame_HUD_StandaloneAdvantages, ingame_HUD_UnlockNotification, +ingame_HUD_PuzzleCompleteNotification, ingame_HUD_SettingsMenu, ingame_HUD_ModalDialogs, ingame_HUD_CatMemes; @@ -112,6 +135,9 @@ body.uiHidden { #ingame_HUD_PlacementHints, #ingame_HUD_GameMenu, #ingame_HUD_PinnedShapes, + #ingame_HUD_PuzzleBackToMenu, + #ingame_HUD_PuzzleNextPuzzle, + #ingame_HUD_PuzzleEditorReview, #ingame_HUD_Notifications, #ingame_HUD_TutorialHints, #ingame_HUD_Waypoints, @@ -119,11 +145,3 @@ body.uiHidden { display: none !important; } } - -body.modalDialogActive, -body.externalAdOpen, -body.ingameDialogOpen { - > *:not(.ingameDialog):not(.modalDialogParent):not(.loadingDialog):not(.gameLoadingOverlay):not(#ingame_HUD_ModalDialogs):not(.noBlur) { - // filter: blur(5px) !important; - } -} diff --git a/src/css/mixins.scss b/src/css/mixins.scss index 43f7a259..888d84d6 100644 --- a/src/css/mixins.scss +++ b/src/css/mixins.scss @@ -15,15 +15,15 @@ $hardwareAcc: null; // ---------------------------------------- /** Increased click area for this element, helpful on mobile */ @mixin IncreasedClickArea($size) { - &::after { - content: ""; - position: absolute; - top: #{D(-$size)}; - bottom: #{D(-$size)}; - left: #{D(-$size)}; - right: #{D(-$size)}; - // background: rgba(255, 0, 0, 0.3); - } + // &::after { + // content: ""; + // position: absolute; + // top: #{D(-$size)}; + // bottom: #{D(-$size)}; + // left: #{D(-$size)}; + // right: #{D(-$size)}; + // // background: rgba(255, 0, 0, 0.3); + // } } button, .increasedClickArea { diff --git a/src/css/resources.scss b/src/css/resources.scss index 08bfa43f..3a581c30 100644 --- a/src/css/resources.scss +++ b/src/css/resources.scss @@ -1,11 +1,13 @@ $buildings: belt, cutter, miner, mixer, painter, rotater, balancer, stacker, trash, underground_belt, wire, constant_signal, logic_gate, lever, filter, wire_tunnel, display, virtual_processor, reader, storage, - transistor, analyzer, comparator, item_producer; + transistor, analyzer, comparator, item_producer, constant_producer, goal_acceptor, block; @each $building in $buildings { [data-icon="building_icons/#{$building}.png"] { /* @load-async */ - background-image: uiResource("res/ui/building_icons/#{$building}.png") !important; + .icon { + background-image: uiResource("res/ui/building_icons/#{$building}.png") !important; + } } } @@ -13,7 +15,8 @@ $buildingsAndVariants: belt, balancer, underground_belt, underground_belt-tier2, cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer, painter-double, painter-quad, trash, storage, reader, rotater-rotate180, display, constant_signal, wire, wire_tunnel, logic_gate-or, logic_gate-not, logic_gate-xor, analyzer, virtual_processor-rotater, virtual_processor-unstacker, item_producer, - virtual_processor-stacker, virtual_processor-painter, wire-second, painter, painter-mirrored, comparator; + constant_producer, virtual_processor-stacker, virtual_processor-painter, wire-second, painter, + painter-mirrored, comparator, goal_acceptor, block; @each $building in $buildingsAndVariants { [data-icon="building_tutorials/#{$building}.png"] { /* @load-async */ @@ -67,7 +70,7 @@ $icons: notification_saved, notification_success, notification_upgrade; } $languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW, zh-CN, nb, mt-MT, ar, nl, vi, - th, hu, pl, ja, kor, no, pt-PT; + th, hu, pl, ja, kor, no, pt-PT, fi, ro, he; @each $language in $languages { [data-languageicon="#{$language}"] { diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss index cf0ab718..15cdbe1c 100644 --- a/src/css/states/main_menu.scss +++ b/src/css/states/main_menu.scss @@ -43,9 +43,10 @@ .languageChoose { @include S(border-radius, 8px); border: solid #222428; - background-color: #fff; @include S(border-width, 2px); - background-size: cover; + background-color: #222428 !important; + background-size: contain !important; + background-position: center center !important; opacity: 0.8; } } @@ -87,16 +88,20 @@ @include S(grid-column-gap, 10px); display: grid; - grid-template-columns: 1fr; - &.demo { + &[data-columns="1"] { + grid-template-columns: 1fr; + } + &[data-columns="2"] { grid-template-columns: 1fr 1fr; } .standaloneBanner { - background: rgb(255, 234, 245); - @include S(border-radius, $globalBorderRadius); + background: rgb(255, 75, 84); + @include S(border-radius, $globalBorderRadius + 4); box-sizing: border-box; + border: solid rgba(#fff, 0.15); + @include S(border-width, 4px); @include S(padding, 15px); display: flex; @@ -110,13 +115,14 @@ h3 { @include Heading; font-weight: bold; - @include S(margin-bottom, 5px); + @include S(margin-bottom, 20px); text-transform: uppercase; - color: $colorRedBright; + color: #fff; } p { @include Text; + color: #fff; } ul { @@ -138,16 +144,14 @@ display: block; text-indent: -999em; cursor: pointer; - @include S(margin-top, 20px); + @include S(margin-top, 30px); pointer-events: all; transition: all 0.12s ease-in; transition-property: opacity, transform; - transform: skewX(-0.5deg); @include S(border-radius, $globalBorderRadius); &:hover { - transform: scale(1.02); opacity: 0.9; } } @@ -181,9 +185,8 @@ .updateLabel { position: absolute; transform: translateX(50%) rotate(-5deg); - color: $colorRedBright; + color: #ff590b; @include Heading; - text-transform: uppercase; font-weight: bold; @include S(right, 40px); @include S(bottom, 20px); @@ -222,9 +225,75 @@ } } + .puzzleContainer { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + background: $colorBlueBright; + grid-row: 1 / 2; + grid-column: 2 / 3; + position: relative; + @include S(padding, 20px); + @include S(border-radius, $globalBorderRadius); + + > .badge { + color: #fff; + text-transform: uppercase; + font-weight: bold; + position: absolute; + @include S(top, 10px); + @include S(right, 10px); + + transform: translateX(50%) rotate(10deg); + @include Heading; + font-weight: bold; + + @include InlineAnimation(1.3s ease-in-out infinite) { + 50% { + transform: translateX(50%) rotate(12deg) scale(1.1); + } + } + } + + > .hint { + @include SuperDuperSmallText; + @include S(margin-top, 10px); + @include S(width, 200px); + } + + > .dlcLogo { + @include S(width, 190px); + } + + > button { + @include S(margin-top, 20px); + @include Heading; + @include S(padding, 10px, 30px); + background-color: #333; + color: #fff; + } + + &.notOwned { + p { + @include PlainText; + color: #333; + @include S(margin-top, 10px); + @include S(width, 190px); + } + > button { + box-sizing: border-box; + @include S(margin-top, 10px); + @include S(width, 190px); + @include S(padding, 10px, 20px); + } + } + } + .mainContainer { display: flex; align-items: center; + grid-row: 1 / 2; justify-content: center; flex-direction: column; background: #fafafa; @@ -241,6 +310,16 @@ align-items: center; } + .modeButtons { + display: grid; + grid-template-columns: repeat(2, 1fr); + @include S(grid-column-gap, 10px); + align-items: start; + height: 100%; + width: 100%; + box-sizing: border-box; + } + .browserWarning { @include S(margin-bottom, 10px); background-color: $colorRedBright; @@ -284,6 +363,18 @@ @include S(margin-left, 15px); } + .playModeButton { + @include IncreasedClickArea(0px); + @include S(margin-top, 15px); + @include S(margin-left, 15px); + } + + .editModeButton { + @include IncreasedClickArea(0px); + @include S(margin-top, 15px); + @include S(margin-left, 15px); + } + .savegames { @include S(max-height, 105px); overflow-y: auto; @@ -438,6 +529,37 @@ } } + .bottomContainer { + display: flex; + align-items: center; + justify-content: center; + flex-direction: row; + @include S(padding-top, 10px); + height: 100%; + width: 100%; + box-sizing: border-box; + + .buttons { + display: grid; + grid-template-columns: repeat(2, 1fr); + @include S(grid-column-gap, 10px); + align-items: start; + height: 100%; + width: 100%; + box-sizing: border-box; + } + } + + #crosspromo { + position: absolute; + @include S(bottom, 50px); + @include S(right, 20px); + @include S(width, 190px); + @include S(height, 100px); + pointer-events: all; + border: 0; + } + .footer { display: grid; flex-grow: 1; @@ -449,6 +571,45 @@ box-sizing: border-box; @include S(grid-gap, 4px); + &.noLinks { + grid-template-columns: auto 1fr; + } + + &.wegameDisclaimer { + @include SuperSmallText; + display: grid; + justify-content: center; + grid-template-columns: 1fr auto 1fr; + text-align: center; + + > .disclaimer { + grid-column: 2 / 3; + + @include DarkThemeOverride { + color: #fff; + } + } + + > .rating { + grid-column: 3 / 4; + justify-self: end; + align-self: end; + + @include S(width, 32px); + @include S(height, 40px); + background: green; + cursor: pointer !important; + pointer-events: all; + @include S(border-radius, 4px); + overflow: hidden; + + & { + /* @load-async */ + background: #fff uiResource("wegame_isbn_rating.jpg") center center / contain no-repeat; + } + } + } + .author { flex-grow: 1; text-align: right; diff --git a/src/css/states/preload.scss b/src/css/states/preload.scss index 1187a2d4..2e14abd6 100644 --- a/src/css/states/preload.scss +++ b/src/css/states/preload.scss @@ -14,9 +14,10 @@ padding: 10px; box-sizing: border-box; background: #eef1f4; + @include S(border-radius, 3px); @include DarkThemeOverride { - background: #424242; + background: #33343c; } .version { diff --git a/src/css/states/puzzle_menu.scss b/src/css/states/puzzle_menu.scss new file mode 100644 index 00000000..44f5d7ce --- /dev/null +++ b/src/css/states/puzzle_menu.scss @@ -0,0 +1,382 @@ +#state_PuzzleMenuState { + > .headerBar { + display: grid; + grid-template-columns: 1fr auto; + align-items: center; + + > h1 { + justify-self: start; + } + + .createPuzzle { + background-color: $colorGreenBright; + @include S(margin-left, 5px); + } + } + + > .container { + .searchForm { + display: flex; + align-items: center; + justify-content: center; + + color: #333; + background: $accentColorBright; + @include S(padding, 5px); + @include S(border-radius, $globalBorderRadius); + flex-wrap: wrap; + + @include DarkThemeOverride { + background: $accentColorDark; + } + + input.search { + color: #333; + margin: 0; + display: inline-block; + flex-grow: 1; + @include S(padding, 5px, 10px); + @include S(min-width, 50px); + + &::placeholder { + color: #aaa; + } + } + + select { + color: #333; + border: 0; + @include S(padding, 5px); + @include S(border-radius, $globalBorderRadius); + @include S(padding, 7px, 10px); + @include S(margin-left, 5px); + @include PlainText; + } + + .filterCompleted { + @include S(margin-left, 20px); + pointer-events: all; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + text-transform: uppercase; + @include PlainText; + @include S(margin-right, 10px); + + @include DarkThemeOverride { + color: #bbbbc4; + } + + input { + @include S(width, 15px); + @include S(height, 15px); + @include S(margin-right, 5px); + @include S(border-radius, $globalBorderRadius); + border: 0; + } + } + + button[type="submit"] { + @include S(padding, 7px, 10px, 5px); + @include S(margin-left, 20px); + @include S(margin-top, 4px); + @include S(margin-bottom, 4px); + margin-left: auto; + } + } + + > .mainContent { + overflow: hidden; + display: flex; + flex-direction: column; + + > .categoryChooser { + > .categories { + display: grid; + grid-auto-columns: 1fr; + grid-auto-flow: column; + @include S(grid-gap, 2px); + @include S(padding-right, 10px); + @include S(margin-bottom, 5px); + + .category { + background: $accentColorBright; + border-radius: 0; + color: $accentColorDark; + transition: all 0.12s ease-in-out; + transition-property: opacity, background-color, color; + + &:first-child { + @include S(border-top-left-radius, $globalBorderRadius); + @include S(border-bottom-left-radius, $globalBorderRadius); + } + &:last-child { + border-top-right-radius: $globalBorderRadius; + border-bottom-right-radius: $globalBorderRadius; + } + + &.active { + background: $colorBlueBright; + opacity: 1 !important; + color: #fff; + cursor: default; + } + + @include DarkThemeOverride { + background: $accentColorDark; + color: #bbbbc4; + + &.active { + background: $colorBlueBright; + color: #fff; + } + } + + &.root { + @include S(padding-top, 10px); + @include S(padding-bottom, 10px); + @include Text; + } + &.child { + @include PlainText; + } + } + } + } + + > .puzzles { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(D(240px), 1fr)); + @include S(grid-auto-rows, 65px); + @include S(grid-gap, 7px); + @include S(margin-top, 10px); + @include S(padding-right, 4px); + overflow-y: scroll; + flex-grow: 1; + pointer-events: all; + position: relative; + + > .puzzle { + width: 100%; + @include S(height, 65px); + background: #f3f3f8; + @include S(border-radius, $globalBorderRadius); + + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: D(15px) D(15px) 1fr; + @include S(padding, 5px); + @include S(grid-column-gap, 5px); + box-sizing: border-box; + pointer-events: all; + cursor: pointer; + position: relative; + @include S(padding-left, 10px); + + @include DarkThemeOverride { + background: rgba(0, 0, 10, 0.2); + } + + @include InlineAnimation(0.12s ease-in-out) { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + + &:hover { + background: #f0f0f8; + } + + > .title { + grid-column: 2 / 3; + grid-row: 1 / 2; + @include PlainText; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + align-self: center; + justify-self: start; + width: 100%; + box-sizing: border-box; + @include S(padding, 2px, 5px); + @include S(height, 17px); + } + + > .author { + grid-column: 2 / 2; + grid-row: 2 / 3; + @include SuperSmallText; + color: $accentColorDark; + align-self: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + @include S(padding, 2px, 5px); + } + + > .icon { + grid-column: 1 / 2; + grid-row: 1 / 4; + align-self: center; + justify-self: center; + @include S(width, 45px); + @include S(height, 45px); + + canvas { + width: 100%; + height: 100%; + } + } + + > button.delete { + position: absolute; + @include S(top, 5px); + @include S(right, 5px); + background-repeat: no-repeat; + background-position: center center; + background-size: 70%; + background-color: transparent !important; + @include S(width, 20px); + @include S(height, 20px); + padding: 0; + opacity: 0.7; + @include DarkThemeInvert; + + & { + /* @load-async */ + background-image: uiResource("icons/delete.png") !important; + } + } + + > .stats { + grid-column: 2 / 3; + grid-row: 3 / 4; + display: flex; + align-items: center; + justify-self: end; + justify-content: center; + align-self: end; + @include S(height, 14px); + + > .downloads { + @include SuperSmallText; + color: #000; + font-weight: bold; + @include S(margin-right, 5px); + @include S(padding-left, 12px); + opacity: 0.7; + display: inline-flex; + align-items: center; + justify-content: center; + @include DarkThemeInvert; + + & { + /* @load-async */ + background: uiResource("icons/puzzle_plays.png") #{D(2px)} #{D(2.5px)} / #{D( + 8px + )} #{D(8px)} no-repeat; + } + } + + > .likes { + @include SuperSmallText; + align-items: center; + justify-content: center; + color: #000; + font-weight: bold; + @include S(padding-left, 14px); + opacity: 0.7; + @include DarkThemeInvert; + + & { + /* @load-async */ + background: uiResource("icons/puzzle_upvotes.png") #{D(2px)} #{D(2.4px)} / #{D( + 9px + )} #{D(9px)} no-repeat; + } + } + + > .difficulty { + @include SuperSmallText; + align-items: center; + justify-content: center; + color: #000; + font-weight: bold; + @include S(margin-right, 3px); + opacity: 0.7; + text-transform: uppercase; + + &.stage--easy { + color: $colorGreenBright; + } + &.stage--medium { + color: $colorOrangeBright; + } + &.stage--hard { + color: $colorRedBright; + } + &.stage--unknown { + color: #888; + } + } + } + + &.completed { + > .icon, + > .stats, + > .author, + > .title { + opacity: 0.3; + } + + background: #fafafa; + + @include DarkThemeOverride { + background: rgba(0, 0, 0, 0.05); + } + + &::after { + content: ""; + position: absolute; + @include S(top, 10px); + @include S(right, 10px); + @include S(width, 30px); + @include S(height, 30px); + opacity: 0.1; + + & { + /* @load-async */ + background: uiResource("icons/puzzle_complete_indicator.png") center center / + contain no-repeat; + } + } + @include DarkThemeOverride { + &::after { + /* @load-async */ + background: uiResource("icons/puzzle_complete_indicator_inverse.png") center + center / contain no-repeat; + } + } + } + } + + > .loader, + > .empty { + display: flex; + align-items: center; + color: $accentColorDark; + justify-content: center; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + } + } + } +} diff --git a/src/css/states/settings.scss b/src/css/states/settings.scss index 50afcaa3..5b36c677 100644 --- a/src/css/states/settings.scss +++ b/src/css/states/settings.scss @@ -50,7 +50,8 @@ } button.categoryButton, - button.about { + button.about, + button.privacy { background-color: $colorCategoryButton; color: #777a7f; @@ -68,6 +69,10 @@ } } + button.privacy { + @include S(margin-top, 4px); + } + .versionbar { @include S(margin-top, 10px); @@ -180,7 +185,8 @@ .container .content { .sidebar { button.categoryButton, - button.about { + button.about, + button.privacy { color: #ccc; background-color: darken($darkModeControlsBackground, 5); diff --git a/src/css/states/wegame_splash.scss b/src/css/states/wegame_splash.scss new file mode 100644 index 00000000..961cfa67 --- /dev/null +++ b/src/css/states/wegame_splash.scss @@ -0,0 +1,38 @@ +#state_WegameSplashState { + background: #000 !important; + display: flex; + align-items: center; + justify-content: center; + + .wrapper { + opacity: 0; + @include InlineAnimation(5.9s ease-in-out) { + 0% { + opacity: 0; + } + 20% { + opacity: 1; + } + 90% { + opacity: 1; + } + 100% { + opacity: 0; + } + } + + text-align: center; + color: #fff; + @include Heading; + + strong { + display: block; + @include SuperHeading; + @include S(margin-bottom, 20px); + } + + div { + @include S(margin-bottom, 10px); + } + } +} diff --git a/src/css/variables.scss b/src/css/variables.scss index d2798f41..c7b7c17c 100644 --- a/src/css/variables.scss +++ b/src/css/variables.scss @@ -18,8 +18,10 @@ $textLineHeight: 21px; $plainTextFontSize: 13px; $plainTextLineHeight: 17px; -$supersmallTextFontSize: 10px; -$supersmallTextLineHeight: 13px; +$superDuperSmallTextFontSize: 8px; +$superDuperSmallTextLineHeight: 9px; +$superSmallTextFontSize: 10px; +$superSmallTextLineHeight: 13px; $buttonFontSize: 14px; $buttonLineHeight: 18px; @@ -33,6 +35,7 @@ $accentColorDark: #7d808a; $colorGreenBright: #66bb6a; $colorBlueBright: rgb(74, 151, 223); $colorRedBright: #ef5072; +$colorOrangeBright: #ef9d50; $themeColor: #393747; $ingameHudBg: rgba(#333438, 0.9); @@ -76,8 +79,16 @@ $mainFontScale: 1; // } } +@mixin SuperDuperSmallText { + @include ScaleFont($superDuperSmallTextFontSize, $superDuperSmallTextLineHeight); + font-weight: $mainFontWeight; + font-family: $mainFont; + letter-spacing: $mainFontSpacing; + @include DebugText(green); +} + @mixin SuperSmallText { - @include ScaleFont($supersmallTextFontSize, $supersmallTextLineHeight); + @include ScaleFont($superSmallTextFontSize, $superSmallTextLineHeight); font-weight: $mainFontWeight; font-family: $mainFont; letter-spacing: $mainFontSpacing; diff --git a/src/js/application.js b/src/js/application.js index d9ca7641..c49b7027 100644 --- a/src/js/application.js +++ b/src/js/application.js @@ -12,6 +12,7 @@ import { getPlatformName, waitNextFrame } from "./core/utils"; import { Vector } from "./core/vector"; import { AdProviderInterface } from "./platform/ad_provider"; import { NoAdProvider } from "./platform/ad_providers/no_ad_provider"; +import { NoAchievementProvider } from "./platform/browser/no_achievement_provider"; import { AnalyticsInterface } from "./platform/analytics"; import { GoogleAnalyticsImpl } from "./platform/browser/google_analytics"; import { SoundImplBrowser } from "./platform/browser/sound"; @@ -30,8 +31,13 @@ import { PreloadState } from "./states/preload"; import { SettingsState } from "./states/settings"; import { ShapezGameAnalytics } from "./platform/browser/game_analytics"; import { RestrictionManager } from "./core/restriction_manager"; +import { PuzzleMenuState } from "./states/puzzle_menu"; +import { ClientAPI } from "./platform/api"; +import { LoginState } from "./states/login"; +import { WegameSplashState } from "./states/wegame_splash"; /** + * @typedef {import("./platform/achievement_provider").AchievementProviderInterface} AchievementProviderInterface * @typedef {import("./platform/game_analytics").GameAnalyticsInterface} GameAnalyticsInterface * @typedef {import("./platform/sound").SoundInterface} SoundInterface * @typedef {import("./platform/storage").StorageInterface} StorageInterface @@ -70,6 +76,7 @@ export class Application { this.savegameMgr = new SavegameManager(this); this.inputMgr = new InputDistributor(this); this.backgroundResourceLoader = new BackgroundResourcesLoader(this); + this.clientApi = new ClientAPI(this); // Restrictions (Like demo etc) this.restrictionMgr = new RestrictionManager(this); @@ -85,6 +92,9 @@ export class Application { /** @type {PlatformWrapperInterface} */ this.platformWrapper = null; + /** @type {AchievementProviderInterface} */ + this.achievementProvider = null; + /** @type {AdProviderInterface} */ this.adProvider = null; @@ -137,6 +147,7 @@ export class Application { this.sound = new SoundImplBrowser(this); this.analytics = new GoogleAnalyticsImpl(this); this.gameAnalytics = new ShapezGameAnalytics(this); + this.achievementProvider = new NoAchievementProvider(this); } /** @@ -145,6 +156,7 @@ export class Application { registerStates() { /** @type {Array} */ const states = [ + WegameSplashState, PreloadState, MobileWarningState, MainMenuState, @@ -153,6 +165,8 @@ export class Application { KeybindingsState, AboutState, ChangelogState, + PuzzleMenuState, + LoginState, ]; for (let i = 0; i < states.length; ++i) { @@ -318,8 +332,12 @@ export class Application { Loader.linkAppAfterBoot(this); + if (G_WEGAME_VERSION) { + this.stateMgr.moveToState("WegameSplashState"); + } + // Check for mobile - if (IS_MOBILE) { + else if (IS_MOBILE) { this.stateMgr.moveToState("MobileWarningState"); } else { this.stateMgr.moveToState("PreloadState"); diff --git a/src/js/changelog.js b/src/js/changelog.js index fcafbe2b..ec9a317c 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -1,7 +1,108 @@ export const CHANGELOG = [ + { + version: "1.4.4", + date: "29.08.2021", + entries: [ + "Hotfix: Fixed the balancer not distributing items evenly, caused by the 1.4.3 update. Sorry for any inconveniences!", + ], + }, + { + version: "1.4.3", + date: "28.08.2021", + entries: [ + "You can now hold 'ALT' while hovering a building to see its output! (Thanks to Sense101) (PS: There is now a setting to have it always on!)", + "The map overview should now be much more performant! As a consequence, you can now zoom out farther! (Thanks to PFedak)", + "Puzzle DLC: There is now a 'next puzzle' button!", + "Puzzle DLC: There is now a search function!", + "Edit signal dialog now has the previous signal filled (Thanks to EmeraldBlock)", + "Further performance improvements (Thanks to PFedak)", + "Improved puzzle validation (Thanks to Sense101)", + "Input fields in dialogs should now automatically focus", + "Fix selected building being deselected at level up (Thanks to EmeraldBlock)", + "Updated translations", + ], + }, + { + version: "1.4.2", + date: "24.06.2021", + entries: [ + "Puzzle DLC: Goal acceptors now reset after getting no items for a while (This should prevent being able to 'cheat' puzzles) (by Sense101)", + "Puzzle DLC: Added button to clear all buildings / reset the puzzle (by Sense101)", + "Puzzle DLC: Allow copy-paste in puzzle mode (by Sense101)", + "Fixed level achievements being given on the wrong level (by DJ1TJOO)", + "Fixed blueprint not properly clearing on right click", + "Updated translations", + ], + }, + { + version: "1.4.1", + date: "22.06.2021", + entries: [ + "The Puzzle DLC is now available on Steam!", + "The Soundtrack is now also available to wishlist and will be released within the next days, including the new music from the Puzzle DLC!", + ], + }, + { + version: "1.4.0", + date: "04.06.2021", + entries: [ + "Belts in blueprints should now always paste correctly", + "You can now clear belts by selecting them and then pressing 'B'", + "Preparations for the Puzzle DLC, coming June 22nd!", + ], + }, + { + version: "1.3.1", + date: "16.04.2021", + entries: G_CHINA_VERSION + ? [ + "第13关的交付目标更改为:中国古代指南针。(感谢玩家:凯风入心 创作并提供", + "第17关的交付目标更改为:永乐通宝。(感谢玩家:金天赐 创作并提供", + "第22关的交付目标更改为:凤凰。(感谢玩家:我没得眼镜 创作并提供", + "第23关的交付目标更改为:古代车轮。(感谢玩家:我没得眼镜 创作并提供", + "第24关的交付目标更改为:大熊猫。(感谢玩家:窝囸倪现任 创作并提供", + + "修复了一些特定情况下偶尔会发生的存档损坏问题", + "修复了成就更新后有时候游戏崩溃的问题", + ] + : [ + "Fixed savegames getting corrupt in rare conditions", + "Fixed game crashing sometimes since the achievements update", + ], + }, + { + version: "1.3.0", + date: "12.03.2020", + skin: "achievements", + entries: [ + "There are now 45 Steam Achievements!", + "Fixed constant signals being editable from the regular layer", + "Fixed items still overlapping sometimes between buildings and belts", + "The game is now available in finnish, italian, romanian and ukrainian! (Thanks to all contributors!)", + "Updated translations (Thanks to all contributors!)", + ], + }, + { + version: "1.2.2", + date: "07.12.2020", + entries: [ + "Fix item readers and some other buildings slowing up belts, especially if they stalled (inspired by Keterr's fix)", + "Added the ability to edit constant signals by left clicking them", + "Prevent items from being rendered on each other when a belt stalls (inspired by Keterr)", + "You can now add markers in the wire layer (partially by daanbreur)", + "Allow to cycle backwards in the toolbar with SHIFT + Tab (idea by EmeraldBlock)", + "Allow to cycle variants backwards with SHIFT + T", + "Upgrade numbers now use roman numerals until tier 50 (by LeopoldTal)", + "Add button to unpin shapes from the left side (by artemisSystem)", + "Fix middle mouse button also placing blueprints (by Eiim)", + "Hide wires grid when using the 'Disable Grid' setting (by EmeraldBlock)", + "Fix UI using multiple different save icons", + "Updated translations (Thanks to all contributors!)", + ], + }, { version: "1.2.1", - date: "unreleased", + date: "31.10.2020", entries: [ "Fixed stacking bug for level 26 which required restarting the game", "Fix reward notification being too long sometimes (by LeopoldTal)", diff --git a/src/js/core/animation_frame.js b/src/js/core/animation_frame.js index eeefb4b0..6aa629a5 100644 --- a/src/js/core/animation_frame.js +++ b/src/js/core/animation_frame.js @@ -51,9 +51,12 @@ export class AnimationFrame { dt = resetDtMs; } - this.frameEmitted.dispatch(dt); + try { + this.frameEmitted.dispatch(dt); + } catch (ex) { + console.error(ex); + } this.lastTime = time; - window.requestAnimationFrame(this.boundMethod); } } diff --git a/src/js/core/background_resources_loader.js b/src/js/core/background_resources_loader.js index bbd37036..316619c4 100644 --- a/src/js/core/background_resources_loader.js +++ b/src/js/core/background_resources_loader.js @@ -12,8 +12,13 @@ import { cachebust } from "./cachebust"; const logger = createLogger("background_loader"); +export function getLogoSprite() { + // @todo: ugh, in a hurry + return G_WEGAME_VERSION ? "logo_wegame.png" : G_CHINA_VERSION ? "logo_cn.png" : "logo.png"; +} + const essentialMainMenuSprites = [ - "logo.png", + getLogoSprite(), ...G_ALL_UI_IMAGES.filter(src => src.startsWith("ui/") && src.indexOf(".gif") < 0), ]; const essentialMainMenuSounds = [ diff --git a/src/js/core/buffer_maintainer.js b/src/js/core/buffer_maintainer.js index 1d506803..3eaf1f8a 100644 --- a/src/js/core/buffer_maintainer.js +++ b/src/js/core/buffer_maintainer.js @@ -167,4 +167,25 @@ export class BufferMaintainer { }); return canvas; } + + /** + * @param {object} param0 + * @param {string} param0.key + * @param {string} param0.subKey + * @returns {HTMLCanvasElement?} + * + */ + getForKeyOrNullNoUpdate({ key, subKey }) { + let parent = this.cache.get(key); + if (!parent) { + return null; + } + + // Now search for sub key + const cacheHit = parent.get(subKey); + if (cacheHit) { + return cacheHit.canvas; + } + return null; + } } diff --git a/src/js/core/config.js b/src/js/core/config.js index 4169a0c2..bc2e2460 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -7,7 +7,7 @@ export const IS_DEBUG = export const SUPPORT_TOUCH = false; -export const IS_MAC = navigator.platform.toLowerCase().indexOf("mac") >= 0; +export const IS_MAC = navigator.platform.toLowerCase().indexOf("mac") >= 0 && !G_IS_DEV; const smoothCanvas = true; @@ -17,7 +17,11 @@ export const THIRDPARTY_URLS = { reddit: "https://www.reddit.com/r/shapezio", shapeViewer: "https://viewer.shapez.io", + privacyPolicy: "https://tobspr.io/privacy.html", + standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/", + stanaloneCampaignLink: "https://get.shapez.io", + puzzleDlcStorePage: "https://store.steampowered.com/app/1625400/shapezio__Puzzle_DLC", levelTutorialVideos: { 21: "https://www.youtube.com/watch?v=0nUfRLMCcgo&", @@ -40,6 +44,9 @@ export const globalConfig = { assetsSharpness: 1.5, shapesSharpness: 1.4, + // Achievements + achievementSliceDuration: 10, // Seconds + // Production analytics statisticsGraphDpi: 2.5, statisticsGraphSlices: 100, @@ -50,6 +57,7 @@ export const globalConfig = { // Map mapChunkSize: 16, + chunkAggregateSize: 4, mapChunkOverviewMinZoom: 0.9, mapChunkWorldSize: null, // COMPUTED @@ -68,6 +76,13 @@ export const globalConfig = { readerAnalyzeIntervalSeconds: 10, + goalAcceptorItemsRequired: 12, + goalAcceptorsPerProducer: 5, + puzzleModeSpeed: 3, + puzzleMinBoundsSize: 2, + puzzleMaxBoundsSize: 20, + puzzleValidationDurationSeconds: 30, + buildingSpeeds: { cutter: 1 / 4, cutterQuad: 1 / 4, @@ -90,7 +105,7 @@ export const globalConfig = { gameSpeed: 1, warmupTimeSecondsFast: 0.5, - warmupTimeSecondsRegular: 3, + warmupTimeSecondsRegular: 1.5, smoothing: { smoothMainCanvas: smoothCanvas && true, diff --git a/src/js/core/config.local.js b/src/js/core/config.local.template.js similarity index 92% rename from src/js/core/config.local.js rename to src/js/core/config.local.template.js index 87aaaa14..41677997 100644 --- a/src/js/core/config.local.js +++ b/src/js/core/config.local.template.js @@ -53,12 +53,18 @@ export default { // Replace all translations with emojis to see which texts are translateable // testTranslations: true, // ----------------------------------------------------------------------------------- - // Enables an inspector which shows information about the entity below the curosr + // Enables an inspector which shows information about the entity below the cursor // enableEntityInspector: true, // ----------------------------------------------------------------------------------- // Enables ads in the local build (normally they are deactivated there) // testAds: true, // ----------------------------------------------------------------------------------- + // Allows unlocked achievements to be logged to console in the local build + // testAchievements: true, + // ----------------------------------------------------------------------------------- + // Enables use of (some) existing flags within the puzzle mode context + // testPuzzleMode: true, + // ----------------------------------------------------------------------------------- // Disables the automatic switch to an overview when zooming out // disableMapOverview: true, // ----------------------------------------------------------------------------------- diff --git a/src/js/core/game_state.js b/src/js/core/game_state.js index cee962f5..b08bef77 100644 --- a/src/js/core/game_state.js +++ b/src/js/core/game_state.js @@ -91,26 +91,6 @@ export class GameState { } } - /** - * - * @param {string} nextStateId - * @param {object=} nextStatePayload - */ - watchAdAndMoveToState(nextStateId, nextStatePayload = {}) { - if (this.app.adProvider.getCanShowVideoAd() && this.app.isRenderable()) { - this.moveToState( - "WatchAdState", - { - nextStateId, - nextStatePayload, - }, - true - ); - } else { - this.moveToState(nextStateId, nextStatePayload); - } - } - /** * Tracks clicks on a given element and calls the given callback *on this state*. * If you want to call another function wrap it inside a lambda. diff --git a/src/js/core/global_registries.js b/src/js/core/global_registries.js index ad45850c..723bf567 100644 --- a/src/js/core/global_registries.js +++ b/src/js/core/global_registries.js @@ -5,6 +5,7 @@ import { Factory } from "./factory"; * @typedef {import("../game/time/base_game_speed").BaseGameSpeed} BaseGameSpeed * @typedef {import("../game/component").Component} Component * @typedef {import("../game/base_item").BaseItem} BaseItem + * @typedef {import("../game/game_mode").GameMode} GameMode * @typedef {import("../game/meta_building").MetaBuilding} MetaBuilding @@ -19,6 +20,9 @@ export let gBuildingsByCategory = null; /** @type {FactoryTemplate} */ export let gComponentRegistry = new Factory("component"); +/** @type {FactoryTemplate} */ +export let gGameModeRegistry = new Factory("gameMode"); + /** @type {FactoryTemplate} */ export let gGameSpeedRegistry = new Factory("gamespeed"); diff --git a/src/js/core/modal_dialog_elements.js b/src/js/core/modal_dialog_elements.js index 5f0ed59f..ee552aa9 100644 --- a/src/js/core/modal_dialog_elements.js +++ b/src/js/core/modal_dialog_elements.js @@ -267,7 +267,7 @@ export class Dialog { * Dialog which simply shows a loading spinner */ export class DialogLoading extends Dialog { - constructor(app) { + constructor(app, text = "") { super({ app, title: "", @@ -279,6 +279,8 @@ export class DialogLoading extends Dialog { // Loading dialog can not get closed with back button this.inputReciever.backButton.removeAll(); this.inputReciever.context = "dialog-loading"; + + this.text = text; } createElement() { @@ -287,6 +289,13 @@ export class DialogLoading extends Dialog { elem.classList.add("loadingDialog"); this.element = elem; + if (this.text) { + const text = document.createElement("div"); + text.classList.add("text"); + text.innerText = this.text; + elem.appendChild(text); + } + const loader = document.createElement("div"); loader.classList.add("prefab_LoadingTextWithAnim"); loader.classList.add("loadingIndicator"); @@ -309,7 +318,7 @@ export class DialogOptionChooser extends Dialog {
- ${iconHtml} + ${iconHtml} ${text} ${descHtml}
@@ -444,7 +453,7 @@ export class DialogWithForm extends Dialog { for (let i = 0; i < this.formElements.length; ++i) { const elem = this.formElements[i]; elem.bindEvents(div, this.clickDetectors); - elem.valueChosen.add(this.closeRequested.dispatch, this.closeRequested); + // elem.valueChosen.add(this.closeRequested.dispatch, this.closeRequested); elem.valueChosen.add(this.valueChosen.dispatch, this.valueChosen); } diff --git a/src/js/core/modal_dialog_forms.js b/src/js/core/modal_dialog_forms.js index 1c5b1986..ccf9bfb2 100644 --- a/src/js/core/modal_dialog_forms.js +++ b/src/js/core/modal_dialog_forms.js @@ -1,6 +1,7 @@ import { BaseItem } from "../game/base_item"; import { ClickDetector } from "./click_detector"; import { Signal } from "./signal"; +import { getIPCRenderer } from "./utils"; /* * *************************************************** @@ -107,6 +108,19 @@ export class FormElementInput extends FormElement { updateErrorState() { this.element.classList.toggle("errored", !this.isValid()); + + // profanity filter + if (G_WEGAME_VERSION) { + const value = String(this.element.value); + + getIPCRenderer() + .invoke("profanity-check", value) + .then(newValue => { + if (value !== newValue && this.element) { + this.element.value = newValue; + } + }); + } } isValid() { @@ -117,8 +131,14 @@ export class FormElementInput extends FormElement { return this.element.value; } + setValue(value) { + this.element.value = value; + this.updateErrorState(); + } + focus() { this.element.focus(); + this.element.select(); } } diff --git a/src/js/core/rectangle.js b/src/js/core/rectangle.js index f17825ca..bd3421d9 100644 --- a/src/js/core/rectangle.js +++ b/src/js/core/rectangle.js @@ -44,6 +44,15 @@ export class Rectangle { return new Rectangle(left, top, right - left, bottom - top); } + /** + * + * @param {number} width + * @param {number} height + */ + static centered(width, height) { + return new Rectangle(-Math.ceil(width / 2), -Math.ceil(height / 2), width, height); + } + /** * Returns if a intersects b * @param {Rectangle} a @@ -72,7 +81,7 @@ export class Rectangle { /** * Returns if this rectangle is equal to the other while taking an epsilon into account * @param {Rectangle} other - * @param {number} epsilon + * @param {number} [epsilon] */ equalsEpsilon(other, epsilon) { return ( @@ -287,6 +296,15 @@ export class Rectangle { return Rectangle.fromTRBL(top, right, bottom, left); } + /** + * Returns whether the rectangle fully intersects the given rectangle + * @param {Rectangle} rect + */ + intersectsFully(rect) { + const intersection = this.getIntersection(rect); + return intersection && Math.abs(intersection.w * intersection.h - rect.w * rect.h) < 0.001; + } + /** * Returns the union of this rectangle with another * @param {Rectangle} rect diff --git a/src/js/core/restriction_manager.js b/src/js/core/restriction_manager.js index 2912d30f..c899b494 100644 --- a/src/js/core/restriction_manager.js +++ b/src/js/core/restriction_manager.js @@ -89,6 +89,11 @@ export class RestrictionManager extends ReadWriteProxy { return false; } + if (queryParamOptions.embedProvider === "gamedistribution") { + // also full version on gamedistribution + return false; + } + if (G_IS_DEV) { return typeof window !== "undefined" && window.location.search.indexOf("demo") >= 0; } diff --git a/src/js/core/signal.js b/src/js/core/signal.js index 7daae4ea..2dbc9f93 100644 --- a/src/js/core/signal.js +++ b/src/js/core/signal.js @@ -17,6 +17,17 @@ export class Signal { ++this.modifyCount; } + /** + * Adds a new signal listener + * @param {function} receiver + * @param {object} scope + */ + addToTop(receiver, scope = null) { + assert(receiver, "receiver is null"); + this.receivers.unshift({ receiver, scope }); + ++this.modifyCount; + } + /** * Dispatches the signal * @param {...any} payload diff --git a/src/js/core/state_manager.js b/src/js/core/state_manager.js index 3c49ada9..2e55f5d4 100644 --- a/src/js/core/state_manager.js +++ b/src/js/core/state_manager.js @@ -89,10 +89,15 @@ export class StateManager { const dialogParent = document.createElement("div"); dialogParent.classList.add("modalDialogParent"); document.body.appendChild(dialogParent); + try { + this.currentState.internalEnterCallback(payload); + } catch (ex) { + console.error(ex); + throw ex; + } this.app.sound.playThemeMusic(this.currentState.getThemeMusic()); - this.currentState.internalEnterCallback(payload); this.currentState.onResized(this.app.screenWidth, this.app.screenHeight); this.app.analytics.trackStateEnter(key); diff --git a/src/js/core/utils.js b/src/js/core/utils.js index 50657841..1d1b0b02 100644 --- a/src/js/core/utils.js +++ b/src/js/core/utils.js @@ -573,12 +573,14 @@ export function round1DigitLocalized(speed, separator = T.global.decimalSeparato * @param {string=} separator The decimal separator for numbers like 50.1 (separator='.') */ export function formatItemsPerSecond(speed, double = false, separator = T.global.decimalSeparator) { - return speed === 1.0 - ? T.ingame.buildingPlacement.infoTexts.oneItemPerSecond - : T.ingame.buildingPlacement.infoTexts.itemsPerSecond.replace( - "", - round2Digits(speed).toString().replace(".", separator) - ) + (double ? " " + T.ingame.buildingPlacement.infoTexts.itemsPerSecondDouble : ""); + return ( + (speed === 1.0 + ? T.ingame.buildingPlacement.infoTexts.oneItemPerSecond + : T.ingame.buildingPlacement.infoTexts.itemsPerSecond.replace( + "", + round2Digits(speed).toString().replace(".", separator) + )) + (double ? " " + T.ingame.buildingPlacement.infoTexts.itemsPerSecondDouble : "") + ); } /** @@ -723,29 +725,8 @@ export function startFileChoose(acceptedType = ".bin") { }); } -const romanLiterals = [ - "0", // NULL - "I", - "II", - "III", - "IV", - "V", - "VI", - "VII", - "VIII", - "IX", - "X", - "XI", - "XII", - "XIII", - "XIV", - "XV", - "XVI", - "XVII", - "XVIII", - "XIX", - "XX", -]; +const MAX_ROMAN_NUMBER = 49; +const romanLiteralsCache = ["0"]; /** * @@ -753,9 +734,57 @@ const romanLiterals = [ * @returns {string} */ export function getRomanNumber(number) { - number = Math.max(0, Math.round(number)); - if (number < romanLiterals.length) { - return romanLiterals[number]; + if (G_WEGAME_VERSION) { + return String(number); } - return String(number); + + number = Math.max(0, Math.round(number)); + if (romanLiteralsCache[number]) { + return romanLiteralsCache[number]; + } + + if (number > MAX_ROMAN_NUMBER) { + return String(number); + } + + function formatDigit(digit, unit, quintuple, decuple) { + switch (digit) { + case 0: + return ""; + case 1: // I + return unit; + case 2: // II + return unit + unit; + case 3: // III + return unit + unit + unit; + case 4: // IV + return unit + quintuple; + case 9: // IX + return unit + decuple; + default: + // V, VI, VII, VIII + return quintuple + formatDigit(digit - 5, unit, quintuple, decuple); + } + } + + let thousands = Math.floor(number / 1000); + let thousandsPart = ""; + while (thousands > 0) { + thousandsPart += "M"; + thousands -= 1; + } + + const hundreds = Math.floor((number % 1000) / 100); + const hundredsPart = formatDigit(hundreds, "C", "D", "M"); + + const tens = Math.floor((number % 100) / 10); + const tensPart = formatDigit(tens, "X", "L", "C"); + + const units = number % 10; + const unitsPart = formatDigit(units, "I", "V", "X"); + + const formatted = thousandsPart + hundredsPart + tensPart + unitsPart; + + romanLiteralsCache[number] = formatted; + return formatted; } diff --git a/src/js/game/achievement_proxy.js b/src/js/game/achievement_proxy.js new file mode 100644 index 00000000..9077b283 --- /dev/null +++ b/src/js/game/achievement_proxy.js @@ -0,0 +1,154 @@ +/* typehints:start */ +import { Entity } from "./entity"; +import { GameRoot } from "./root"; +/* typehints:end */ + +import { globalConfig } from "../core/config"; +import { createLogger } from "../core/logging"; +import { ACHIEVEMENTS } from "../platform/achievement_provider"; +import { getBuildingDataFromCode } from "./building_codes"; + +const logger = createLogger("achievement_proxy"); + +const ROTATER = "rotater"; +const DEFAULT = "default"; + +export class AchievementProxy { + /** @param {GameRoot} root */ + constructor(root) { + this.root = root; + this.provider = this.root.app.achievementProvider; + this.disabled = true; + + if (G_IS_DEV && globalConfig.debug.testAchievements) { + // still enable the proxy + } else if (!this.provider.hasAchievements()) { + return; + } + + this.sliceTime = 0; + + this.root.signals.postLoadHook.add(this.onLoad, this); + } + + onLoad() { + if (!this.root.gameMode.hasAchievements()) { + logger.log("Disabling achievements because game mode does not have achievements"); + this.disabled = true; + return; + } + + this.provider + .onLoad(this.root) + .then(() => { + this.disabled = false; + logger.log("Recieving achievement signals"); + this.initialize(); + }) + .catch(err => { + this.disabled = true; + logger.error("Ignoring achievement signals", err); + }); + } + + initialize() { + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.darkMode, null); + + if (this.has(ACHIEVEMENTS.mam)) { + this.root.signals.entityAdded.add(this.onMamFailure, this); + this.root.signals.entityDestroyed.add(this.onMamFailure, this); + this.root.signals.storyGoalCompleted.add(this.onStoryGoalCompleted, this); + } + + if (this.has(ACHIEVEMENTS.noInverseRotater)) { + this.root.signals.entityAdded.add(this.onEntityAdded, this); + } + + this.startSlice(); + } + + startSlice() { + this.sliceTime = this.root.time.now(); + + this.root.signals.bulkAchievementCheck.dispatch( + ACHIEVEMENTS.storeShape, + this.sliceTime, + ACHIEVEMENTS.throughputBp25, + this.sliceTime, + ACHIEVEMENTS.throughputBp50, + this.sliceTime, + ACHIEVEMENTS.throughputLogo25, + this.sliceTime, + ACHIEVEMENTS.throughputLogo50, + this.sliceTime, + ACHIEVEMENTS.throughputRocket10, + this.sliceTime, + ACHIEVEMENTS.throughputRocket20, + this.sliceTime, + ACHIEVEMENTS.play1h, + this.sliceTime, + ACHIEVEMENTS.play10h, + this.sliceTime, + ACHIEVEMENTS.play20h, + this.sliceTime + ); + } + + update() { + if (this.disabled) { + return; + } + + if (this.root.time.now() - this.sliceTime > globalConfig.achievementSliceDuration) { + this.startSlice(); + } + } + + /** + * @param {string} key + * @returns {boolean} + */ + has(key) { + if (!this.provider.collection) { + return false; + } + return this.provider.collection.map.has(key); + } + + /** @param {Entity} entity */ + onEntityAdded(entity) { + if (!entity.components.StaticMapEntity) { + return; + } + + const building = getBuildingDataFromCode(entity.components.StaticMapEntity.code); + + if (building.metaInstance.id !== ROTATER) { + return; + } + + if (building.variant === DEFAULT) { + return; + } + + this.root.savegame.currentData.stats.usedInverseRotater = true; + this.root.signals.entityAdded.remove(this.onEntityAdded); + } + + /** @param {number} level */ + onStoryGoalCompleted(level) { + if (level > 26) { + this.root.signals.entityAdded.add(this.onMamFailure, this); + this.root.signals.entityDestroyed.add(this.onMamFailure, this); + } + + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.mam, null); + + // reset on every level + this.root.savegame.currentData.stats.failedMam = false; + } + + onMamFailure() { + this.root.savegame.currentData.stats.failedMam = true; + } +} diff --git a/src/js/game/base_item.js b/src/js/game/base_item.js index 0075e6c1..d74ff834 100644 --- a/src/js/game/base_item.js +++ b/src/js/game/base_item.js @@ -11,6 +11,7 @@ export const itemTypes = ["shape", "color", "boolean"]; export class BaseItem extends BasicSerializableObject { constructor() { super(); + this._type = this.getItemType(); } static getId() { diff --git a/src/js/game/belt_path.js b/src/js/game/belt_path.js index eb55d613..8ad4f7e3 100644 --- a/src/js/game/belt_path.js +++ b/src/js/game/belt_path.js @@ -13,8 +13,6 @@ import { GameRoot } from "./root"; const logger = createLogger("belt_path"); // Helpers for more semantic access into interleaved arrays -const _nextDistance = 0; -const _item = 1; const DEBUG = G_IS_DEV && false; @@ -110,6 +108,15 @@ export class BeltPath extends BasicSerializableObject { } } + /** + * Clears all items + */ + clearAllItems() { + this.items = []; + this.spacingToFirstItem = this.totalLength; + this.numCompressedItemsAfterFirstItem = 0; + } + /** * Returns whether this path can accept a new item * @returns {boolean} @@ -174,7 +181,7 @@ export class BeltPath extends BasicSerializableObject { * Recomputes cache variables once the path was changed */ onPathChanged() { - this.acceptorTarget = this.computeAcceptingEntityAndSlot(); + this.boundAcceptor = this.computeAcceptingEntityAndSlot(); /** * How many items past the first item are compressed @@ -192,7 +199,7 @@ export class BeltPath extends BasicSerializableObject { /** * Finds the entity which accepts our items * @param {boolean=} debug_Silent Whether debug output should be silent - * @return {{ entity: Entity, slot: number, direction?: enumDirection }} + * @return { (BaseItem, number?) => boolean } */ computeAcceptingEntityAndSlot(debug_Silent = false) { DEBUG && !debug_Silent && logger.log("Recomputing acceptor target"); @@ -214,55 +221,142 @@ export class BeltPath extends BasicSerializableObject { "regular" ); - if (targetEntity) { - DEBUG && !debug_Silent && logger.log(" Found target entity", targetEntity.uid); - const targetStaticComp = targetEntity.components.StaticMapEntity; - const targetBeltComp = targetEntity.components.Belt; + if (!targetEntity) { + return; + } - // Check for belts (special case) - if (targetBeltComp) { - const beltAcceptingDirection = targetStaticComp.localDirectionToWorld(enumDirection.top); - DEBUG && - !debug_Silent && - logger.log( - " Entity is accepting items from", - ejectSlotWsDirection, - "vs", - beltAcceptingDirection, - "Rotation:", - targetStaticComp.rotation + const noSimplifiedBelts = !this.root.app.settings.getAllSettings().simplifiedBelts; + + DEBUG && !debug_Silent && logger.log(" Found target entity", targetEntity.uid); + const targetStaticComp = targetEntity.components.StaticMapEntity; + const targetBeltComp = targetEntity.components.Belt; + + // Check for belts (special case) + if (targetBeltComp) { + const beltAcceptingDirection = targetStaticComp.localDirectionToWorld(enumDirection.top); + DEBUG && + !debug_Silent && + logger.log( + " Entity is accepting items from", + ejectSlotWsDirection, + "vs", + beltAcceptingDirection, + "Rotation:", + targetStaticComp.rotation + ); + if (ejectSlotWsDirection === beltAcceptingDirection) { + return item => { + const path = targetBeltComp.assignedPath; + assert(path, "belt has no path"); + return path.tryAcceptItem(item); + }; + } + } + + // Check for item acceptors + const targetAcceptorComp = targetEntity.components.ItemAcceptor; + if (!targetAcceptorComp) { + // Entity doesn't accept items + return; + } + + const ejectingDirection = targetStaticComp.worldDirectionToLocal(ejectSlotWsDirection); + const matchingSlot = targetAcceptorComp.findMatchingSlot( + targetStaticComp.worldToLocalTile(ejectSlotTargetWsTile), + ejectingDirection + ); + + if (!matchingSlot) { + // No matching slot found + return; + } + + const matchingSlotIndex = matchingSlot.index; + const passOver = this.computePassOverFunctionWithoutBelts(targetEntity, matchingSlotIndex); + if (!passOver) { + return; + } + + const matchingDirection = enumInvertedDirections[ejectingDirection]; + const filter = matchingSlot.slot.filter; + + return function (item, remainingProgress = 0.0) { + // Check if the acceptor has a filter + if (filter && item._type !== filter) { + return false; + } + + // Try to pass over + if (passOver(item, matchingSlotIndex)) { + // Trigger animation on the acceptor comp + if (noSimplifiedBelts) { + targetAcceptorComp.onItemAccepted( + matchingSlotIndex, + matchingDirection, + item, + remainingProgress ); - if (ejectSlotWsDirection === beltAcceptingDirection) { - return { - entity: targetEntity, - direction: null, - slot: 0, - }; } + return true; } + return false; + }; + } - // Check for item acceptors - const targetAcceptorComp = targetEntity.components.ItemAcceptor; - if (!targetAcceptorComp) { - // Entity doesn't accept items - return; - } + /** + * Computes a method to pass over the item to the entity + * @param {Entity} entity + * @param {number} matchingSlotIndex + * @returns {(item: BaseItem, slotIndex: number) => boolean | void} + */ + computePassOverFunctionWithoutBelts(entity, matchingSlotIndex) { + const systems = this.root.systemMgr.systems; + const hubGoals = this.root.hubGoals; - const ejectingDirection = targetStaticComp.worldDirectionToLocal(ejectSlotWsDirection); - const matchingSlot = targetAcceptorComp.findMatchingSlot( - targetStaticComp.worldToLocalTile(ejectSlotTargetWsTile), - ejectingDirection - ); + // NOTICE: THIS IS COPIED FROM THE ITEM EJECTOR SYSTEM FOR PEROFMANCE REASONS - if (!matchingSlot) { - // No matching slot found - return; - } + const itemProcessorComp = entity.components.ItemProcessor; + if (itemProcessorComp) { + // Its an item processor .. + return function (item) { + // Check for potential filters + if (!systems.itemProcessor.checkRequirements(entity, item, matchingSlotIndex)) { + return; + } + return itemProcessorComp.tryTakeItem(item, matchingSlotIndex); + }; + } - return { - entity: targetEntity, - slot: matchingSlot.index, - direction: enumInvertedDirections[ejectingDirection], + const undergroundBeltComp = entity.components.UndergroundBelt; + if (undergroundBeltComp) { + // Its an underground belt. yay. + return function (item) { + return undergroundBeltComp.tryAcceptExternalItem( + item, + hubGoals.getUndergroundBeltBaseSpeed() + ); + }; + } + + const storageComp = entity.components.Storage; + if (storageComp) { + // It's a storage + return function (item) { + if (storageComp.canAcceptItem(item)) { + storageComp.takeItem(item); + return true; + } + }; + } + + const filterComp = entity.components.Filter; + if (filterComp) { + // It's a filter! Unfortunately the filter has to know a lot about it's + // surrounding state and components, so it can't be within the component itself. + return function (item) { + if (systems.filter.tryAcceptItem(entity, matchingSlotIndex, item)) { + return true; + } }; } } @@ -365,17 +459,17 @@ export class BeltPath extends BasicSerializableObject { for (let i = 0; i < this.items.length; ++i) { const item = this.items[i]; - if (item[_nextDistance] < 0 || item[_nextDistance] > this.totalLength + 0.02) { + if (item[0 /* nextDistance */] < 0 || item[0 /* nextDistance */] > this.totalLength + 0.02) { return fail( "Item has invalid offset to next item: ", - item[_nextDistance], + item[0 /* nextDistance */], "(total length:", this.totalLength, ")" ); } - currentPos += item[_nextDistance]; + currentPos += item[0 /* nextDistance */]; } // Check the total sum matches @@ -387,7 +481,7 @@ export class BeltPath extends BasicSerializableObject { this.spacingToFirstItem, ") and items does not match total length (", this.totalLength, - ") -> items: " + this.items.map(i => i[_nextDistance]).join("|") + ") -> items: " + this.items.map(i => i[0 /* nextDistance */]).join("|") ); } @@ -399,43 +493,14 @@ export class BeltPath extends BasicSerializableObject { // Check acceptor const acceptor = this.computeAcceptingEntityAndSlot(true); - if (!!acceptor !== !!this.acceptorTarget) { - return fail("Acceptor target mismatch, acceptor", !!acceptor, "vs stored", !!this.acceptorTarget); - } - - if (acceptor) { - if (this.acceptorTarget.entity !== acceptor.entity) { - return fail( - "Mismatching entity on acceptor target:", - acceptor.entity.uid, - "vs", - this.acceptorTarget.entity.uid - ); - } - - if (this.acceptorTarget.slot !== acceptor.slot) { - return fail( - "Mismatching entity on acceptor target:", - acceptor.slot, - "vs stored", - this.acceptorTarget.slot - ); - } - - if (this.acceptorTarget.direction !== acceptor.direction) { - return fail( - "Mismatching direction on acceptor target:", - acceptor.direction, - "vs stored", - this.acceptorTarget.direction - ); - } + if (!!acceptor !== !!this.boundAcceptor) { + return fail("Acceptor target mismatch, acceptor", !!acceptor, "vs stored", !!this.boundAcceptor); } // Check first nonzero offset let firstNonzero = 0; for (let i = this.items.length - 2; i >= 0; --i) { - if (this.items[i][_nextDistance] < globalConfig.itemSpacingOnBelts + 1e-5) { + if (this.items[i][0 /* nextDistance */] < globalConfig.itemSpacingOnBelts + 1e-5) { ++firstNonzero; } else { break; @@ -483,11 +548,11 @@ export class BeltPath extends BasicSerializableObject { DEBUG && logger.log( " Extended spacing of last item from", - lastItem[_nextDistance], + lastItem[0 /* nextDistance */], "to", - lastItem[_nextDistance] + additionalLength + lastItem[0 /* nextDistance */] + additionalLength ); - lastItem[_nextDistance] += additionalLength; + lastItem[0 /* nextDistance */] += additionalLength; } // Assign reference @@ -618,7 +683,7 @@ export class BeltPath extends BasicSerializableObject { DEBUG && logger.log( "Old items are", - this.items.map(i => i[_nextDistance]) + this.items.map(i => i[0 /* nextDistance */]) ); // Create second path @@ -628,7 +693,7 @@ export class BeltPath extends BasicSerializableObject { let itemPos = this.spacingToFirstItem; for (let i = 0; i < this.items.length; ++i) { const item = this.items[i]; - const distanceToNext = item[_nextDistance]; + const distanceToNext = item[0 /* nextDistance */]; DEBUG && logger.log(" Checking item at", itemPos, "with distance of", distanceToNext, "to next"); @@ -643,7 +708,7 @@ export class BeltPath extends BasicSerializableObject { // Check if its on the second path (otherwise its on the removed belt and simply lost) if (itemPos >= secondPathStart) { // Put item on second path - secondPath.items.push([distanceToNext, item[_item]]); + secondPath.items.push([distanceToNext, item[1 /* item */]]); DEBUG && logger.log( " Put item to second path @", @@ -672,7 +737,7 @@ export class BeltPath extends BasicSerializableObject { "to", clampedDistanceToNext ); - item[_nextDistance] = clampedDistanceToNext; + item[0 /* nextDistance */] = clampedDistanceToNext; } } @@ -683,13 +748,13 @@ export class BeltPath extends BasicSerializableObject { DEBUG && logger.log( "New items are", - this.items.map(i => i[_nextDistance]) + this.items.map(i => i[0 /* nextDistance */]) ); DEBUG && logger.log( "And second path items are", - secondPath.items.map(i => i[_nextDistance]) + secondPath.items.map(i => i[0 /* nextDistance */]) ); // Adjust our total length @@ -776,9 +841,17 @@ export class BeltPath extends BasicSerializableObject { continue; } - DEBUG && logger.log("Item", i, "is at", itemOffset, "with next offset", item[_nextDistance]); + DEBUG && + logger.log( + "Item", + i, + "is at", + itemOffset, + "with next offset", + item[0 /* nextDistance */] + ); lastItemOffset = itemOffset; - itemOffset += item[_nextDistance]; + itemOffset += item[0 /* nextDistance */]; } // If we still have an item, make sure the last item matches @@ -805,7 +878,7 @@ export class BeltPath extends BasicSerializableObject { this.totalLength, ")" ); - this.items[this.items.length - 1][_nextDistance] = lastDistance; + this.items[this.items.length - 1][0 /* nextDistance */] = lastDistance; } else { DEBUG && logger.log(" Removed all items so we'll update spacing to total length"); @@ -893,7 +966,7 @@ export class BeltPath extends BasicSerializableObject { DEBUG && logger.log( " Items:", - this.items.map(i => i[_nextDistance]) + this.items.map(i => i[0 /* nextDistance */]) ); // Find offset to first item @@ -912,7 +985,7 @@ export class BeltPath extends BasicSerializableObject { // This item must be dropped this.items.splice(i, 1); i -= 1; - itemOffset += item[_nextDistance]; + itemOffset += item[0 /* nextDistance */]; continue; } else { // This item can be kept, thus its the first we know @@ -990,9 +1063,13 @@ export class BeltPath extends BasicSerializableObject { // Now, update the distance of our last item if (this.items.length !== 0) { const lastItem = this.items[this.items.length - 1]; - lastItem[_nextDistance] += otherPath.spacingToFirstItem; + lastItem[0 /* nextDistance */] += otherPath.spacingToFirstItem; DEBUG && - logger.log(" Add distance to last item, effectively being", lastItem[_nextDistance], "now"); + logger.log( + " Add distance to last item, effectively being", + lastItem[0 /* nextDistance */], + "now" + ); } else { // Seems we have no items, update our first item distance this.spacingToFirstItem = oldLength + otherPath.spacingToFirstItem; @@ -1012,7 +1089,7 @@ export class BeltPath extends BasicSerializableObject { // Aaand push the other paths items for (let i = 0; i < otherPath.items.length; ++i) { const item = otherPath.items[i]; - this.items.push([item[_nextDistance], item[_item]]); + this.items.push([item[0 /* nextDistance */], item[1 /* item */]]); } // Update bounds @@ -1046,6 +1123,11 @@ export class BeltPath extends BasicSerializableObject { this.debug_checkIntegrity("pre-update"); } + // Skip empty belts + if (this.items.length === 0) { + return; + } + // Divide by item spacing on belts since we use throughput and not speed let beltSpeed = this.root.hubGoals.getBeltBaseSpeed() * @@ -1074,29 +1156,60 @@ export class BeltPath extends BasicSerializableObject { lastItemProcessed === this.items.length - 1 ? 0 : globalConfig.itemSpacingOnBelts; // Compute how much we can advance - const clampedProgress = Math.max( - 0, - Math.min(remainingVelocity, nextDistanceAndItem[_nextDistance] - minimumSpacing) - ); + let clampedProgress = nextDistanceAndItem[0 /* nextDistance */] - minimumSpacing; + + // Make sure we don't advance more than the remaining velocity has stored + if (remainingVelocity < clampedProgress) { + clampedProgress = remainingVelocity; + } + + // Make sure we don't advance back + if (clampedProgress < 0) { + clampedProgress = 0; + } // Reduce our velocity by the amount we consumed remainingVelocity -= clampedProgress; // Reduce the spacing - nextDistanceAndItem[_nextDistance] -= clampedProgress; + nextDistanceAndItem[0 /* nextDistance */] -= clampedProgress; + + // Advance all items behind by the progress we made + this.spacingToFirstItem += clampedProgress; // If the last item can be ejected, eject it and reduce the spacing, because otherwise // we lose velocity - if (isFirstItemProcessed && nextDistanceAndItem[_nextDistance] < 1e-7) { + if (isFirstItemProcessed && nextDistanceAndItem[0 /* nextDistance */] < 1e-7) { // Store how much velocity we "lost" because we bumped the item to the end of the // belt but couldn't move it any farther. We need this to tell the item acceptor // animation to start a tad later, so everything matches up. Yes I'm a perfectionist. const excessVelocity = beltSpeed - clampedProgress; // Try to directly get rid of the item - if (this.tryHandOverItem(nextDistanceAndItem[_item], excessVelocity)) { + if ( + this.boundAcceptor && + this.boundAcceptor(nextDistanceAndItem[1 /* item */], excessVelocity) + ) { this.items.pop(); + const itemBehind = this.items[lastItemProcessed - 1]; + if (itemBehind && this.numCompressedItemsAfterFirstItem > 0) { + // So, with the next tick we will skip this item, but it actually has the potential + // to process farther -> If we don't advance here, we loose a tiny bit of progress + // every tick which causes the belt to be slower than it actually is. + // Also see #999 + const fixupProgress = Math.max( + 0, + Math.min(remainingVelocity, itemBehind[0 /* nextDistance */]) + ); + + // See above + itemBehind[0 /* nextDistance */] -= fixupProgress; + remainingVelocity -= fixupProgress; + this.spacingToFirstItem += fixupProgress; + } + + // Reduce the number of compressed items since the first item no longer exists this.numCompressedItemsAfterFirstItem = Math.max( 0, this.numCompressedItemsAfterFirstItem - 1 @@ -1110,7 +1223,6 @@ export class BeltPath extends BasicSerializableObject { } isFirstItemProcessed = false; - this.spacingToFirstItem += clampedProgress; if (remainingVelocity < 1e-7) { break; } @@ -1125,8 +1237,8 @@ export class BeltPath extends BasicSerializableObject { // Check if we have an item which is ready to be emitted const lastItem = this.items[this.items.length - 1]; - if (lastItem && lastItem[_nextDistance] === 0 && this.acceptorTarget) { - if (this.tryHandOverItem(lastItem[_item])) { + if (lastItem && lastItem[0 /* nextDistance */] === 0) { + if (this.boundAcceptor && this.boundAcceptor(lastItem[1 /* item */])) { this.items.pop(); this.numCompressedItemsAfterFirstItem = Math.max( 0, @@ -1140,50 +1252,6 @@ export class BeltPath extends BasicSerializableObject { } } - /** - * Tries to hand over the item to the end entity - * @param {BaseItem} item - */ - tryHandOverItem(item, remainingProgress = 0.0) { - if (!this.acceptorTarget) { - return; - } - - const targetAcceptorComp = this.acceptorTarget.entity.components.ItemAcceptor; - - // Check if the acceptor has a filter for example - if (targetAcceptorComp && !targetAcceptorComp.canAcceptItem(this.acceptorTarget.slot, item)) { - // Well, this item is not accepted - return false; - } - - // Try to pass over - if ( - this.root.systemMgr.systems.itemEjector.tryPassOverItem( - item, - this.acceptorTarget.entity, - this.acceptorTarget.slot - ) - ) { - // Trigger animation on the acceptor comp - const targetAcceptorComp = this.acceptorTarget.entity.components.ItemAcceptor; - if (targetAcceptorComp) { - if (!this.root.app.settings.getAllSettings().simplifiedBelts) { - targetAcceptorComp.onItemAccepted( - this.acceptorTarget.slot, - this.acceptorTarget.direction, - item, - remainingProgress - ); - } - } - - return true; - } - - return false; - } - /** * Computes a world space position from the given progress * @param {number} progress @@ -1250,11 +1318,11 @@ export class BeltPath extends BasicSerializableObject { parameters.context.font = "6px GameFont"; parameters.context.fillStyle = "#111"; parameters.context.fillText( - "" + round4Digits(nextDistanceAndItem[_nextDistance]), + "" + round4Digits(nextDistanceAndItem[0 /* nextDistance */]), worldPos.x + 5, worldPos.y + 2 ); - progress += nextDistanceAndItem[_nextDistance]; + progress += nextDistanceAndItem[0 /* nextDistance */]; if (this.items.length - 1 - this.numCompressedItemsAfterFirstItem === i) { parameters.context.fillStyle = "red"; @@ -1350,7 +1418,7 @@ export class BeltPath extends BasicSerializableObject { const centerPos = staticComp.localTileToWorld(centerPosLocal).toWorldSpaceCenterOfTile(); parameters.context.globalAlpha = 0.5; - firstItem[_item].drawItemCenteredClipped(centerPos.x, centerPos.y, parameters); + firstItem[1 /* item */].drawItemCenteredClipped(centerPos.x, centerPos.y, parameters); parameters.context.globalAlpha = 1; } @@ -1382,7 +1450,7 @@ export class BeltPath extends BasicSerializableObject { const distanceAndItem = this.items[currentItemIndex]; - distanceAndItem[_item].drawItemCenteredClipped( + distanceAndItem[1 /* item */].drawItemCenteredClipped( worldPos.x, worldPos.y, parameters, @@ -1390,7 +1458,7 @@ export class BeltPath extends BasicSerializableObject { ); // Check for the next item - currentItemPos += distanceAndItem[_nextDistance]; + currentItemPos += distanceAndItem[0 /* nextDistance */]; ++currentItemIndex; if (currentItemIndex >= this.items.length) { diff --git a/src/js/game/blueprint.js b/src/js/game/blueprint.js index 3923b08e..d0fbef69 100644 --- a/src/js/game/blueprint.js +++ b/src/js/game/blueprint.js @@ -3,6 +3,7 @@ import { DrawParameters } from "../core/draw_parameters"; import { findNiceIntegerValue } from "../core/utils"; import { Vector } from "../core/vector"; import { Entity } from "./entity"; +import { ACHIEVEMENTS } from "../platform/achievement_provider"; import { GameRoot } from "./root"; export class Blueprint { @@ -134,8 +135,12 @@ export class Blueprint { const entity = this.entities[i]; const staticComp = entity.components.StaticMapEntity; + // Actually keeping this in as an easter egg to rotate the trash can + // if (staticComp.getMetaBuilding().getIsRotateable()) { staticComp.rotation = (staticComp.rotation + 90) % 360; staticComp.originalRotation = (staticComp.originalRotation + 90) % 360; + // } + staticComp.origin = staticComp.origin.rotateFastMultipleOf90(90); } } @@ -172,6 +177,9 @@ export class Blueprint { * @param {GameRoot} root */ canAfford(root) { + if (root.gameMode.getHasFreeCopyPaste()) { + return true; + } return root.hubGoals.getShapesStoredByKey(root.gameMode.getBlueprintShapeKey()) >= this.getCost(); } @@ -182,21 +190,31 @@ export class Blueprint { */ tryPlace(root, tile) { return root.logic.performBulkOperation(() => { - let anyPlaced = false; - for (let i = 0; i < this.entities.length; ++i) { - const entity = this.entities[i]; - if (!root.logic.checkCanPlaceEntity(entity, tile)) { - continue; + return root.logic.performImmutableOperation(() => { + let count = 0; + for (let i = 0; i < this.entities.length; ++i) { + const entity = this.entities[i]; + if (!root.logic.checkCanPlaceEntity(entity, tile)) { + continue; + } + + const clone = entity.clone(); + clone.components.StaticMapEntity.origin.addInplace(tile); + root.logic.freeEntityAreaBeforeBuild(clone); + root.map.placeStaticEntity(clone); + root.entityMgr.registerEntity(clone); + count++; } - const clone = entity.clone(); - clone.components.StaticMapEntity.origin.addInplace(tile); - root.logic.freeEntityAreaBeforeBuild(clone); - root.map.placeStaticEntity(clone); - root.entityMgr.registerEntity(clone); - anyPlaced = true; - } - return anyPlaced; + root.signals.bulkAchievementCheck.dispatch( + ACHIEVEMENTS.placeBlueprint, + count, + ACHIEVEMENTS.placeBp1000, + count + ); + + return count !== 0; + }); }); } } diff --git a/src/js/game/buildings/balancer.js b/src/js/game/buildings/balancer.js index 2f14e36c..38a568e1 100644 --- a/src/js/game/buildings/balancer.js +++ b/src/js/game/buildings/balancer.js @@ -66,6 +66,10 @@ export class MetaBalancerBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } + let speedMultiplier = 2; switch (variant) { case enumBalancerVariants.merger: @@ -88,9 +92,11 @@ export class MetaBalancerBuilding extends MetaBuilding { * @param {GameRoot} root */ getAvailableVariants(root) { - let available = [defaultBuildingVariant]; + const deterministic = root.gameMode.getIsDeterministic(); - if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_merger)) { + let available = deterministic ? [] : [defaultBuildingVariant]; + + if (!deterministic && root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_merger)) { available.push(enumBalancerVariants.merger, enumBalancerVariants.mergerInverse); } diff --git a/src/js/game/buildings/belt.js b/src/js/game/buildings/belt.js index 84646b19..f4e31ba9 100644 --- a/src/js/game/buildings/belt.js +++ b/src/js/game/buildings/belt.js @@ -55,6 +55,9 @@ export class MetaBeltBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } const beltSpeed = root.hubGoals.getBeltBaseSpeed(); return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(beltSpeed)]]; } diff --git a/src/js/game/buildings/block.js b/src/js/game/buildings/block.js new file mode 100644 index 00000000..d6499648 --- /dev/null +++ b/src/js/game/buildings/block.js @@ -0,0 +1,30 @@ +/* typehints:start */ +import { Entity } from "../entity"; +/* typehints:end */ + +import { MetaBuilding } from "../meta_building"; + +export class MetaBlockBuilding extends MetaBuilding { + constructor() { + super("block"); + } + + getSilhouetteColor() { + return "#333"; + } + + /** + * + * @param {import("../../savegame/savegame_serializer").GameRoot} root + * @returns + */ + getIsRemovable(root) { + return root.gameMode.getIsEditor(); + } + + /** + * Creates the entity at the given location + * @param {Entity} entity + */ + setupEntityComponents(entity) {} +} diff --git a/src/js/game/buildings/constant_producer.js b/src/js/game/buildings/constant_producer.js new file mode 100644 index 00000000..c1c502d0 --- /dev/null +++ b/src/js/game/buildings/constant_producer.js @@ -0,0 +1,42 @@ +/* typehints:start */ +import { Entity } from "../entity"; +/* typehints:end */ + +import { enumDirection, Vector } from "../../core/vector"; +import { ConstantSignalComponent } from "../components/constant_signal"; +import { ItemEjectorComponent } from "../components/item_ejector"; +import { ItemProducerComponent } from "../components/item_producer"; +import { MetaBuilding } from "../meta_building"; + +export class MetaConstantProducerBuilding extends MetaBuilding { + constructor() { + super("constant_producer"); + } + + getSilhouetteColor() { + return "#bfd630"; + } + + /** + * + * @param {import("../../savegame/savegame_serializer").GameRoot} root + * @returns + */ + getIsRemovable(root) { + return root.gameMode.getIsEditor(); + } + + /** + * Creates the entity at the given location + * @param {Entity} entity + */ + setupEntityComponents(entity) { + entity.addComponent( + new ItemEjectorComponent({ + slots: [{ pos: new Vector(0, 0), direction: enumDirection.top }], + }) + ); + entity.addComponent(new ItemProducerComponent({})); + entity.addComponent(new ConstantSignalComponent({})); + } +} diff --git a/src/js/game/buildings/cutter.js b/src/js/game/buildings/cutter.js index 7dee4449..37264c9d 100644 --- a/src/js/game/buildings/cutter.js +++ b/src/js/game/buildings/cutter.js @@ -38,6 +38,9 @@ export class MetaCutterBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } const speed = root.hubGoals.getProcessorBaseSpeed( variant === enumCutterVariants.quad ? enumItemProcessorTypes.cutterQuad diff --git a/src/js/game/buildings/filter.js b/src/js/game/buildings/filter.js index 2d81ce83..08296853 100644 --- a/src/js/game/buildings/filter.js +++ b/src/js/game/buildings/filter.js @@ -40,6 +40,9 @@ export class MetaFilterBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } const beltSpeed = root.hubGoals.getBeltBaseSpeed(); return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(beltSpeed)]]; } diff --git a/src/js/game/buildings/goal_acceptor.js b/src/js/game/buildings/goal_acceptor.js new file mode 100644 index 00000000..dde720e3 --- /dev/null +++ b/src/js/game/buildings/goal_acceptor.js @@ -0,0 +1,54 @@ +/* typehints:start */ +import { Entity } from "../entity"; +/* typehints:end */ + +import { enumDirection, Vector } from "../../core/vector"; +import { GoalAcceptorComponent } from "../components/goal_acceptor"; +import { ItemAcceptorComponent } from "../components/item_acceptor"; +import { enumItemProcessorTypes, ItemProcessorComponent } from "../components/item_processor"; +import { MetaBuilding } from "../meta_building"; + +export class MetaGoalAcceptorBuilding extends MetaBuilding { + constructor() { + super("goal_acceptor"); + } + + getSilhouetteColor() { + return "#ce418a"; + } + + /** + * + * @param {import("../../savegame/savegame_serializer").GameRoot} root + * @returns + */ + getIsRemovable(root) { + return root.gameMode.getIsEditor(); + } + + /** + * Creates the entity at the given location + * @param {Entity} entity + */ + setupEntityComponents(entity) { + entity.addComponent( + new ItemAcceptorComponent({ + slots: [ + { + pos: new Vector(0, 0), + directions: [enumDirection.bottom], + filter: "shape", + }, + ], + }) + ); + + entity.addComponent( + new ItemProcessorComponent({ + processorType: enumItemProcessorTypes.goal, + }) + ); + + entity.addComponent(new GoalAcceptorComponent({})); + } +} diff --git a/src/js/game/buildings/item_producer.js b/src/js/game/buildings/item_producer.js index 477ed603..1140c8f1 100644 --- a/src/js/game/buildings/item_producer.js +++ b/src/js/game/buildings/item_producer.js @@ -39,6 +39,6 @@ export class MetaItemProducerBuilding extends MetaBuilding { ], }) ); - entity.addComponent(new ItemProducerComponent()); + entity.addComponent(new ItemProducerComponent({})); } } diff --git a/src/js/game/buildings/miner.js b/src/js/game/buildings/miner.js index f0b837a1..473aa262 100644 --- a/src/js/game/buildings/miner.js +++ b/src/js/game/buildings/miner.js @@ -31,6 +31,9 @@ export class MetaMinerBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } const speed = root.hubGoals.getMinerBaseSpeed(); return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]]; } diff --git a/src/js/game/buildings/mixer.js b/src/js/game/buildings/mixer.js index cbde309e..e572bbba 100644 --- a/src/js/game/buildings/mixer.js +++ b/src/js/game/buildings/mixer.js @@ -35,6 +35,9 @@ export class MetaMixerBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.mixer); return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]]; } diff --git a/src/js/game/buildings/painter.js b/src/js/game/buildings/painter.js index 6e941403..e7a0b72d 100644 --- a/src/js/game/buildings/painter.js +++ b/src/js/game/buildings/painter.js @@ -46,6 +46,9 @@ export class MetaPainterBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } switch (variant) { case defaultBuildingVariant: case enumPainterVariants.mirrored: { @@ -71,7 +74,10 @@ export class MetaPainterBuilding extends MetaBuilding { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_double)) { variants.push(enumPainterVariants.double); } - if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers)) { + if ( + root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers) && + root.gameMode.getSupportsWires() + ) { variants.push(enumPainterVariants.quad); } return variants; diff --git a/src/js/game/buildings/rotater.js b/src/js/game/buildings/rotater.js index 7df94d16..f24fee14 100644 --- a/src/js/game/buildings/rotater.js +++ b/src/js/game/buildings/rotater.js @@ -48,6 +48,9 @@ export class MetaRotaterBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } switch (variant) { case defaultBuildingVariant: { const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.rotater); diff --git a/src/js/game/buildings/stacker.js b/src/js/game/buildings/stacker.js index 40a9c5ae..6b70365d 100644 --- a/src/js/game/buildings/stacker.js +++ b/src/js/game/buildings/stacker.js @@ -28,6 +28,9 @@ export class MetaStackerBuilding extends MetaBuilding { * @returns {Array<[string, string]>} */ getAdditionalStatistics(root, variant) { + if (root.gameMode.throughputDoesNotMatter()) { + return []; + } const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.stacker); return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]]; } diff --git a/src/js/game/buildings/trash.js b/src/js/game/buildings/trash.js index 43108b9e..0ad5bfd7 100644 --- a/src/js/game/buildings/trash.js +++ b/src/js/game/buildings/trash.js @@ -1,5 +1,6 @@ import { generateMatrixRotations } from "../../core/utils"; import { enumDirection, Vector } from "../../core/vector"; +import { ACHIEVEMENTS } from "../../platform/achievement_provider"; import { ItemAcceptorComponent } from "../components/item_acceptor"; import { enumItemProcessorTypes, ItemProcessorComponent } from "../components/item_processor"; import { Entity } from "../entity"; @@ -37,6 +38,25 @@ export class MetaTrashBuilding extends MetaBuilding { return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_cutter_and_trash); } + addAchievementReceiver(entity) { + if (!entity.root) { + return; + } + + const itemProcessor = entity.components.ItemProcessor; + const tryTakeItem = itemProcessor.tryTakeItem.bind(itemProcessor); + + itemProcessor.tryTakeItem = () => { + const taken = tryTakeItem(...arguments); + + if (taken) { + entity.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.trash1000, 1); + } + + return taken; + }; + } + /** * Creates the entity at the given location * @param {Entity} entity @@ -57,11 +77,14 @@ export class MetaTrashBuilding extends MetaBuilding { ], }) ); + entity.addComponent( new ItemProcessorComponent({ inputsPerCharge: 1, processorType: enumItemProcessorTypes.trash, }) ); + + this.addAchievementReceiver(entity); } } diff --git a/src/js/game/buildings/underground_belt.js b/src/js/game/buildings/underground_belt.js index 2761443d..12e887c9 100644 --- a/src/js/game/buildings/underground_belt.js +++ b/src/js/game/buildings/underground_belt.js @@ -72,13 +72,21 @@ export class MetaUndergroundBeltBuilding extends MetaBuilding { globalConfig.undergroundBeltMaxTilesByTier[enumUndergroundBeltVariantToTier[variant]]; const beltSpeed = root.hubGoals.getUndergroundBeltBaseSpeed(); - return [ + + /** @type {Array<[string, string]>} */ + const stats = [ [ T.ingame.buildingPlacement.infoTexts.range, T.ingame.buildingPlacement.infoTexts.tiles.replace("", "" + rangeTiles), ], - [T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(beltSpeed)], ]; + + if (root.gameMode.throughputDoesNotMatter()) { + return stats; + } + stats.push([T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(beltSpeed)]); + + return stats; } /** diff --git a/src/js/game/camera.js b/src/js/game/camera.js index 107d1fb4..fc90f4de 100644 --- a/src/js/game/camera.js +++ b/src/js/game/camera.js @@ -392,13 +392,20 @@ export class Camera extends BasicSerializableObject { return rect.containsPoint(point.x, point.y); } + getMaximumZoom() { + return this.root.gameMode.getMaximumZoom(); + } + + getMinimumZoom() { + return this.root.gameMode.getMinimumZoom(); + } + /** * Returns if we can further zoom in * @returns {boolean} */ canZoomIn() { - const maxLevel = this.root.app.platformWrapper.getMaximumZoom(); - return this.zoomLevel <= maxLevel - 0.01; + return this.zoomLevel <= this.getMaximumZoom() - 0.01; } /** @@ -406,8 +413,7 @@ export class Camera extends BasicSerializableObject { * @returns {boolean} */ canZoomOut() { - const minLevel = this.root.app.platformWrapper.getMinimumZoom(); - return this.zoomLevel >= minLevel + 0.01; + return this.zoomLevel >= this.getMinimumZoom() + 0.01; } // EVENTS @@ -468,6 +474,7 @@ export class Camera extends BasicSerializableObject { // Clamp everything afterwards this.clampZoomLevel(); + this.clampToBounds(); return false; } @@ -743,17 +750,29 @@ export class Camera extends BasicSerializableObject { if (G_IS_DEV && globalConfig.debug.disableZoomLimits) { return; } - const wrapper = this.root.app.platformWrapper; - assert(Number.isFinite(this.zoomLevel), "Invalid zoom level *before* clamp: " + this.zoomLevel); - this.zoomLevel = clamp(this.zoomLevel, wrapper.getMinimumZoom(), wrapper.getMaximumZoom()); + this.zoomLevel = clamp(this.zoomLevel, this.getMinimumZoom(), this.getMaximumZoom()); assert(Number.isFinite(this.zoomLevel), "Invalid zoom level *after* clamp: " + this.zoomLevel); if (this.desiredZoom) { - this.desiredZoom = clamp(this.desiredZoom, wrapper.getMinimumZoom(), wrapper.getMaximumZoom()); + this.desiredZoom = clamp(this.desiredZoom, this.getMinimumZoom(), this.getMaximumZoom()); } } + /** + * Clamps the center within set boundaries + */ + clampToBounds() { + const bounds = this.root.gameMode.getCameraBounds(); + if (!bounds) { + return; + } + + const tileScaleBounds = this.root.gameMode.getCameraBounds().allScaled(globalConfig.tileSize); + this.center.x = clamp(this.center.x, tileScaleBounds.x, tileScaleBounds.x + tileScaleBounds.w); + this.center.y = clamp(this.center.y, tileScaleBounds.y, tileScaleBounds.y + tileScaleBounds.h); + } + /** * Updates the camera * @param {number} dt Delta time in milliseconds @@ -857,6 +876,7 @@ export class Camera extends BasicSerializableObject { // Panning this.currentPan = mixVector(this.currentPan, this.desiredPan, 0.06); this.center = this.center.add(this.currentPan.multiplyScalar((0.5 * dt) / this.zoomLevel)); + this.clampToBounds(); } } @@ -921,6 +941,8 @@ export class Camera extends BasicSerializableObject { ((0.5 * dt) / this.zoomLevel) * this.root.app.settings.getMovementSpeed() ) ); + + this.clampToBounds(); } /** @@ -1006,6 +1028,8 @@ export class Camera extends BasicSerializableObject { this.center.x += moveAmount * forceX * movementSpeed; this.center.y += moveAmount * forceY * movementSpeed; + + this.clampToBounds(); } } } diff --git a/src/js/game/component.js b/src/js/game/component.js index 46b1b545..cff14d62 100644 --- a/src/js/game/component.js +++ b/src/js/game/component.js @@ -23,6 +23,11 @@ export class Component extends BasicSerializableObject { */ copyAdditionalStateTo(otherComponent) {} + /** + * Clears all items and state + */ + clear() {} + /* dev:start */ /** diff --git a/src/js/game/component_registry.js b/src/js/game/component_registry.js index f094e60d..9c9247e6 100644 --- a/src/js/game/component_registry.js +++ b/src/js/game/component_registry.js @@ -19,6 +19,7 @@ import { DisplayComponent } from "./components/display"; import { BeltReaderComponent } from "./components/belt_reader"; import { FilterComponent } from "./components/filter"; import { ItemProducerComponent } from "./components/item_producer"; +import { GoalAcceptorComponent } from "./components/goal_acceptor"; export function initComponentRegistry() { gComponentRegistry.register(StaticMapEntityComponent); @@ -41,6 +42,7 @@ export function initComponentRegistry() { gComponentRegistry.register(BeltReaderComponent); gComponentRegistry.register(FilterComponent); gComponentRegistry.register(ItemProducerComponent); + gComponentRegistry.register(GoalAcceptorComponent); // IMPORTANT ^^^^^ UPDATE ENTITY COMPONENT STORAGE AFTERWARDS diff --git a/src/js/game/components/belt.js b/src/js/game/components/belt.js index 138c4775..3144ad96 100644 --- a/src/js/game/components/belt.js +++ b/src/js/game/components/belt.js @@ -57,6 +57,12 @@ export class BeltComponent extends Component { this.assignedPath = null; } + clear() { + if (this.assignedPath) { + this.assignedPath.clearAllItems(); + } + } + /** * Returns the effective length of this belt in tile space * @returns {number} diff --git a/src/js/game/components/belt_reader.js b/src/js/game/components/belt_reader.js index d451bab5..187e53cd 100644 --- a/src/js/game/components/belt_reader.js +++ b/src/js/game/components/belt_reader.js @@ -3,6 +3,12 @@ import { BaseItem } from "../base_item"; import { typeItemSingleton } from "../item_resolver"; import { types } from "../../savegame/serialization"; +/** @enum {string} */ +export const enumBeltReaderType = { + wired: "wired", + wireless: "wireless", +}; + export class BeltReaderComponent extends Component { static getId() { return "BeltReader"; @@ -16,7 +22,10 @@ export class BeltReaderComponent extends Component { constructor() { super(); + this.clear(); + } + clear() { /** * Which items went through the reader, we only store the time * @type {Array} diff --git a/src/js/game/components/constant_signal.js b/src/js/game/components/constant_signal.js index 286108be..3f00ccba 100644 --- a/src/js/game/components/constant_signal.js +++ b/src/js/game/components/constant_signal.js @@ -1,7 +1,6 @@ -import { gItemRegistry } from "../../core/global_registries"; import { types } from "../../savegame/serialization"; -import { Component } from "../component"; import { BaseItem } from "../base_item"; +import { Component } from "../component"; import { typeItemSingleton } from "../item_resolver"; export class ConstantSignalComponent extends Component { diff --git a/src/js/game/components/filter.js b/src/js/game/components/filter.js index cffee969..8a22a076 100644 --- a/src/js/game/components/filter.js +++ b/src/js/game/components/filter.js @@ -40,6 +40,10 @@ export class FilterComponent extends Component { constructor() { super(); + this.clear(); + } + + clear() { /** * Items in queue to leave through * @type {Array} diff --git a/src/js/game/components/goal_acceptor.js b/src/js/game/components/goal_acceptor.js new file mode 100644 index 00000000..fa5f5908 --- /dev/null +++ b/src/js/game/components/goal_acceptor.js @@ -0,0 +1,67 @@ +import { globalConfig } from "../../core/config"; +import { BaseItem } from "../base_item"; +import { Component } from "../component"; +import { typeItemSingleton } from "../item_resolver"; + +export class GoalAcceptorComponent extends Component { + static getId() { + return "GoalAcceptor"; + } + + static getSchema() { + return { + item: typeItemSingleton, + }; + } + + /** + * @param {object} param0 + * @param {BaseItem=} param0.item + * @param {number=} param0.rate + */ + constructor({ item = null, rate = null }) { + super(); + + // ths item to produce + /** @type {BaseItem | undefined} */ + this.item = item; + + this.clear(); + } + + clear() { + /** + * The last item we delivered + * @type {{ item: BaseItem; time: number; } | null} */ + this.lastDelivery = null; + + // The amount of items we delivered so far + this.currentDeliveredItems = 0; + + // Used for animations + this.displayPercentage = 0; + } + + /** + * Clears items but doesn't instantly reset the progress bar + */ + clearItems() { + this.lastDelivery = null; + this.currentDeliveredItems = 0; + } + + getRequiredSecondsPerItem() { + return ( + globalConfig.goalAcceptorsPerProducer / + (globalConfig.puzzleModeSpeed * globalConfig.beltSpeedItemsPerSecond) + ); + } + + /** + * Copy the current state to another component + * @param {GoalAcceptorComponent} otherComponent + */ + copyAdditionalStateTo(otherComponent) { + otherComponent.item = this.item; + } +} diff --git a/src/js/game/components/item_acceptor.js b/src/js/game/components/item_acceptor.js index 7dbd9677..354f9024 100644 --- a/src/js/game/components/item_acceptor.js +++ b/src/js/game/components/item_acceptor.js @@ -36,6 +36,11 @@ export class ItemAcceptorComponent extends Component { constructor({ slots = [] }) { super(); + this.setSlots(slots); + this.clear(); + } + + clear() { /** * Fixes belt animations * @type {Array<{ @@ -46,8 +51,6 @@ export class ItemAcceptorComponent extends Component { * }>} */ this.itemConsumptionAnimations = []; - - this.setSlots(slots); } /** @@ -71,6 +74,8 @@ export class ItemAcceptorComponent extends Component { /** * Returns if this acceptor can accept a new item at slot N + * + * NOTICE: The belt path ignores this for performance reasons and does his own check * @param {number} slotIndex * @param {BaseItem=} item */ diff --git a/src/js/game/components/item_ejector.js b/src/js/game/components/item_ejector.js index 47253b4b..bfc54cd8 100644 --- a/src/js/game/components/item_ejector.js +++ b/src/js/game/components/item_ejector.js @@ -11,6 +11,7 @@ import { typeItemSingleton } from "../item_resolver"; * pos: Vector, * direction: enumDirection, * item: BaseItem, + * lastItem: BaseItem, * progress: number?, * cachedDestSlot?: import("./item_acceptor").ItemAcceptorLocatedSlot, * cachedBeltPath?: BeltPath, @@ -48,6 +49,14 @@ export class ItemEjectorComponent extends Component { this.renderFloatingItems = renderFloatingItems; } + clear() { + for (const slot of this.slots) { + slot.item = null; + slot.lastItem = null; + slot.progress = 0; + } + } + /** * @param {Array<{pos: Vector, direction: enumDirection }>} slots The slots to eject on */ @@ -60,6 +69,7 @@ export class ItemEjectorComponent extends Component { pos: slot.pos, direction: slot.direction, item: null, + lastItem: null, progress: 0, cachedDestSlot: null, cachedTargetEntity: null, @@ -124,6 +134,7 @@ export class ItemEjectorComponent extends Component { return false; } this.slots[slotIndex].item = item; + this.slots[slotIndex].lastItem = item; this.slots[slotIndex].progress = 0; return true; } diff --git a/src/js/game/components/item_processor.js b/src/js/game/components/item_processor.js index fd466662..f7dddec1 100644 --- a/src/js/game/components/item_processor.js +++ b/src/js/game/components/item_processor.js @@ -19,6 +19,7 @@ export const enumItemProcessorTypes = { hub: "hub", filter: "filter", reader: "reader", + goal: "goal", }; /** @enum {string} */ @@ -63,10 +64,8 @@ export class ItemProcessorComponent extends Component { }) { super(); - // Which slot to emit next, this is only a preference and if it can't emit - // it will take the other one. Some machines ignore this (e.g. the balancer) to make - // sure the outputs always match - this.nextOutputSlot = 0; + // How many inputs we need for one charge + this.inputsPerCharge = inputsPerCharge; // Type of the processor this.type = processorType; @@ -74,14 +73,28 @@ export class ItemProcessorComponent extends Component { // Type of processing requirement this.processingRequirement = processingRequirement; - // How many inputs we need for one charge - this.inputsPerCharge = inputsPerCharge; - /** * Our current inputs - * @type {Array<{ item: BaseItem, sourceSlot: number }>} + * @type {Map} */ - this.inputSlots = []; + this.inputSlots = new Map(); + + this.clear(); + } + + clear() { + // Which slot to emit next, this is only a preference and if it can't emit + // it will take the other one. Some machines ignore this (e.g. the balancer) to make + // sure the outputs always match + this.nextOutputSlot = 0; + + this.inputSlots.clear(); + + /** + * Current input count + * @type {number} + */ + this.inputCount = 0; /** * What we are currently processing, empty if we don't produce anything rn @@ -104,21 +117,23 @@ export class ItemProcessorComponent extends Component { * @param {number} sourceSlot */ tryTakeItem(item, sourceSlot) { - if (this.type === enumItemProcessorTypes.hub || this.type === enumItemProcessorTypes.trash) { + if ( + this.type === enumItemProcessorTypes.hub || + this.type === enumItemProcessorTypes.trash || + this.type === enumItemProcessorTypes.goal + ) { // Hub has special logic .. not really nice but efficient. - this.inputSlots.push({ item, sourceSlot }); + this.inputSlots.set(this.inputCount, item); + this.inputCount++; return true; } // Check that we only take one item per slot - for (let i = 0; i < this.inputSlots.length; ++i) { - const slot = this.inputSlots[i]; - if (slot.sourceSlot === sourceSlot) { - return false; - } + if (this.inputSlots.has(sourceSlot)) { + return false; } - - this.inputSlots.push({ item, sourceSlot }); + this.inputSlots.set(sourceSlot, item); + this.inputCount++; return true; } } diff --git a/src/js/game/components/miner.js b/src/js/game/components/miner.js index ab87760f..5321ae11 100644 --- a/src/js/game/components/miner.js +++ b/src/js/game/components/miner.js @@ -24,13 +24,6 @@ export class MinerComponent extends Component { this.lastMiningTime = 0; this.chainable = chainable; - /** - * Stores items from other miners which were chained to this - * miner. - * @type {Array} - */ - this.itemChainBuffer = []; - /** * @type {BaseItem} */ @@ -42,6 +35,17 @@ export class MinerComponent extends Component { * @type {Entity|null|false} */ this.cachedChainedMiner = null; + + this.clear(); + } + + clear() { + /** + * Stores items from other miners which were chained to this + * miner. + * @type {Array} + */ + this.itemChainBuffer = []; } /** diff --git a/src/js/game/components/static_map_entity.js b/src/js/game/components/static_map_entity.js index 7e2f5314..c76a298e 100644 --- a/src/js/game/components/static_map_entity.js +++ b/src/js/game/components/static_map_entity.js @@ -71,6 +71,14 @@ export class StaticMapEntityComponent extends Component { return getBuildingDataFromCode(this.code).variant; } + /** + * Returns the buildings rotation variant + * @returns {number} + */ + getRotationVariant() { + return getBuildingDataFromCode(this.code).rotationVariant; + } + /** * Copy the current state to another component * @param {Component} otherComponent diff --git a/src/js/game/components/underground_belt.js b/src/js/game/components/underground_belt.js index a3e883ec..2b744edd 100644 --- a/src/js/game/components/underground_belt.js +++ b/src/js/game/components/underground_belt.js @@ -41,6 +41,17 @@ export class UndergroundBeltComponent extends Component { this.mode = mode; this.tier = tier; + /** + * The linked entity, used to speed up performance. This contains either + * the entrance or exit depending on the tunnel type + * @type {LinkedUndergroundBelt} + */ + this.cachedLinkedEntity = null; + + this.clear(); + } + + clear() { /** @type {Array<{ item: BaseItem, progress: number }>} */ this.consumptionAnimations = []; @@ -51,13 +62,6 @@ export class UndergroundBeltComponent extends Component { * @type {Array<[BaseItem, number]>} Format is [Item, ingame time to eject the item] */ this.pendingItems = []; - - /** - * The linked entity, used to speed up performance. This contains either - * the entrance or exit depending on the tunnel type - * @type {LinkedUndergroundBelt} - */ - this.cachedLinkedEntity = null; } /** diff --git a/src/js/game/core.js b/src/js/game/core.js index 2df8989f..a0ee3713 100644 --- a/src/js/game/core.js +++ b/src/js/game/core.js @@ -31,10 +31,11 @@ import { KeyActionMapper } from "./key_action_mapper"; import { GameLogic } from "./logic"; import { MapView } from "./map_view"; import { defaultBuildingVariant } from "./meta_building"; -import { RegularGameMode } from "./modes/regular"; +import { GameMode } from "./game_mode"; import { ProductionAnalytics } from "./production_analytics"; import { GameRoot } from "./root"; import { ShapeDefinitionManager } from "./shape_definition_manager"; +import { AchievementProxy } from "./achievement_proxy"; import { SoundProxy } from "./sound_proxy"; import { GameTime } from "./time/game_time"; @@ -81,7 +82,9 @@ export class GameCore { * @param {import("../states/ingame").InGameState} parentState * @param {Savegame} savegame */ - initializeRoot(parentState, savegame) { + initializeRoot(parentState, savegame, gameModeId) { + logger.log("initializing root"); + // Construct the root element, this is the data representation of the game this.root = new GameRoot(this.app); this.root.gameState = parentState; @@ -99,18 +102,19 @@ export class GameCore { // This isn't nice, but we need it right here root.keyMapper = new KeyActionMapper(root, this.root.gameState.inputReciever); + // Init game mode + root.gameMode = GameMode.create(root, gameModeId, parentState.creationPayload.gameModeParameters); + // Needs to come first root.dynamicTickrate = new DynamicTickrate(root); - // Init game mode - root.gameMode = new RegularGameMode(root); - // Init classes root.camera = new Camera(root); root.map = new MapView(root); root.logic = new GameLogic(root); root.hud = new GameHUD(root); root.time = new GameTime(root); + root.achievementProxy = new AchievementProxy(root); root.automaticSave = new AutomaticSave(root); root.soundProxy = new SoundProxy(root); @@ -149,9 +153,14 @@ export class GameCore { // Update analytics root.productionAnalytics.update(); + + // Check achievements + root.achievementProxy.update(); } }); } + + logger.log("root initialized"); } /** @@ -163,6 +172,10 @@ export class GameCore { this.root.gameIsFresh = true; this.root.map.seed = randomInt(0, 100000); + if (!this.root.gameMode.hasHub()) { + return; + } + // Place the hub const hub = gMetaBuildingRegistry.findByClass(MetaHubBuilding).createEntity({ root: this.root, @@ -274,6 +287,9 @@ export class GameCore { // Update analytics root.productionAnalytics.update(); + + // Check achievements + root.achievementProxy.update(); } // Update automatic save after everything finished @@ -439,7 +455,9 @@ export class GameCore { systems.hub.draw(params); // Green wires overlay - root.hud.parts.wiresOverlay.draw(params); + if (root.hud.parts.wiresOverlay) { + root.hud.parts.wiresOverlay.draw(params); + } if (this.root.currentLayer === "wires") { // Static map entities diff --git a/src/js/game/dynamic_tickrate.js b/src/js/game/dynamic_tickrate.js index 3e29aba3..c76fa2e1 100644 --- a/src/js/game/dynamic_tickrate.js +++ b/src/js/game/dynamic_tickrate.js @@ -23,10 +23,16 @@ export class DynamicTickrate { this.averageFps = 60; - this.setTickRate(this.root.app.settings.getDesiredFps()); + const fixedRate = this.root.gameMode.getFixedTickrate(); + if (fixedRate) { + logger.log("Setting fixed tickrate of", fixedRate); + this.setTickRate(fixedRate); + } else { + this.setTickRate(this.root.app.settings.getDesiredFps()); - if (G_IS_DEV && globalConfig.debug.renderForTrailer) { - this.setTickRate(300); + if (G_IS_DEV && globalConfig.debug.renderForTrailer) { + this.setTickRate(300); + } } } @@ -99,9 +105,7 @@ export class DynamicTickrate { this.averageTickDuration = average; - const desiredFps = this.root.app.settings.getDesiredFps(); - - // Disabled for now: Dynamicall adjusting tick rate + // Disabled for now: Dynamically adjusting tick rate // if (this.averageFps > desiredFps * 0.9) { // // if (average < maxTickDuration) { // this.increaseTickRate(); diff --git a/src/js/game/entity_components.js b/src/js/game/entity_components.js index 7dee590a..163be9f9 100644 --- a/src/js/game/entity_components.js +++ b/src/js/game/entity_components.js @@ -19,6 +19,7 @@ import { DisplayComponent } from "./components/display"; import { BeltReaderComponent } from "./components/belt_reader"; import { FilterComponent } from "./components/filter"; import { ItemProducerComponent } from "./components/item_producer"; +import { GoalAcceptorComponent } from "./components/goal_acceptor"; /* typehints:end */ /** @@ -89,6 +90,9 @@ export class EntityComponentStorage { /** @type {ItemProducerComponent} */ this.ItemProducer; + /** @type {GoalAcceptorComponent} */ + this.GoalAcceptor; + /* typehints:end */ } } diff --git a/src/js/game/game_mode.js b/src/js/game/game_mode.js index 15403eb5..5414306c 100644 --- a/src/js/game/game_mode.js +++ b/src/js/game/game_mode.js @@ -1,71 +1,197 @@ /* typehints:start */ -import { enumHubGoalRewards } from "./tutorial_goals"; +import { GameRoot } from "./root"; /* typehints:end */ -import { GameRoot } from "./root"; +import { Rectangle } from "../core/rectangle"; +import { gGameModeRegistry } from "../core/global_registries"; +import { types, BasicSerializableObject } from "../savegame/serialization"; +import { MetaBuilding } from "./meta_building"; +import { MetaItemProducerBuilding } from "./buildings/item_producer"; +import { BaseHUDPart } from "./hud/base_hud_part"; -/** @typedef {{ - * shape: string, - * amount: number - * }} UpgradeRequirement */ +/** @enum {string} */ +export const enumGameModeIds = { + puzzleEdit: "puzzleEditMode", + puzzlePlay: "puzzlePlayMode", + regular: "regularMode", +}; -/** @typedef {{ - * required: Array - * improvement?: number, - * excludePrevious?: boolean - * }} TierRequirement */ +/** @enum {string} */ +export const enumGameModeTypes = { + default: "defaultModeType", + puzzle: "puzzleModeType", +}; -/** @typedef {Array} UpgradeTiers */ +export class GameMode extends BasicSerializableObject { + /** @returns {string} */ + static getId() { + abstract; + return "unknownMode"; + } + + /** @returns {string} */ + static getType() { + abstract; + return "unknownType"; + } + /** + * @param {GameRoot} root + * @param {string} [id=Regular] + * @param {object|undefined} payload + */ + static create(root, id = enumGameModeIds.regular, payload = undefined) { + return new (gGameModeRegistry.findById(id))(root, payload); + } -/** @typedef {{ - * shape: string, - * required: number, - * reward: enumHubGoalRewards, - * throughputOnly?: boolean - * }} LevelDefinition */ - -export class GameMode { /** - * * @param {GameRoot} root */ constructor(root) { + super(); this.root = root; + + /** + * @type {Record} + */ + this.additionalHudParts = {}; + + /** @type {typeof MetaBuilding[]} */ + this.hiddenBuildings = [MetaItemProducerBuilding]; + } + + /** @returns {object} */ + serialize() { + return { + $: this.getId(), + data: super.serialize(), + }; + } + + /** @param {object} savedata */ + deserialize({ data }) { + super.deserialize(data, this.root); + } + + /** @returns {string} */ + getId() { + // @ts-ignore + return this.constructor.getId(); + } + + /** @returns {string} */ + getType() { + // @ts-ignore + return this.constructor.getType(); } /** - * Should return all available upgrades - * @returns {Object} - */ - getUpgrades() { - abstract; - return null; - } - - /** - * Returns the blueprint shape key - * @returns {string} - */ - getBlueprintShapeKey() { - abstract; - return null; - } - - /** - * Returns the goals for all levels including their reward - * @returns {Array} - */ - getLevelDefinitions() { - abstract; - return null; - } - - /** - * Should return whether free play is available or if the game stops - * after the predefined levels + * @param {typeof MetaBuilding} building - Class name of building * @returns {boolean} */ - getIsFreeplayAvailable() { + isBuildingExcluded(building) { + return this.hiddenBuildings.indexOf(building) >= 0; + } + + /** @returns {undefined|Rectangle[]} */ + getBuildableZones() { + return; + } + + /** @returns {Rectangle|undefined} */ + getCameraBounds() { + return; + } + + /** @returns {boolean} */ + hasHub() { return true; } + + /** @returns {boolean} */ + hasResources() { + return true; + } + + /** @returns {boolean} */ + hasAchievements() { + return false; + } + + /** @returns {number} */ + getMinimumZoom() { + return 0.06; + } + + /** @returns {number} */ + getMaximumZoom() { + return 3.5; + } + + /** @returns {Object} */ + getUpgrades() { + return { + belt: [], + miner: [], + processors: [], + painting: [], + }; + } + + throughputDoesNotMatter() { + return false; + } + + /** + * @param {number} w + * @param {number} h + */ + adjustZone(w = 0, h = 0) { + abstract; + return; + } + + /** @returns {array} */ + getLevelDefinitions() { + return []; + } + + /** @returns {boolean} */ + getIsFreeplayAvailable() { + return false; + } + + /** @returns {boolean} */ + getIsSaveable() { + return true; + } + + /** @returns {boolean} */ + getHasFreeCopyPaste() { + return false; + } + + /** @returns {boolean} */ + getSupportsWires() { + return true; + } + + /** @returns {boolean} */ + getIsEditor() { + return false; + } + + /** @returns {boolean} */ + getIsDeterministic() { + return false; + } + + /** @returns {number | undefined} */ + getFixedTickrate() { + return; + } + + /** @returns {string} */ + getBlueprintShapeKey() { + return "CbCbCbRb:CwCwCwCw"; + } } diff --git a/src/js/game/game_mode_registry.js b/src/js/game/game_mode_registry.js new file mode 100644 index 00000000..03daceb0 --- /dev/null +++ b/src/js/game/game_mode_registry.js @@ -0,0 +1,10 @@ +import { gGameModeRegistry } from "../core/global_registries"; +import { PuzzleEditGameMode } from "./modes/puzzle_edit"; +import { PuzzlePlayGameMode } from "./modes/puzzle_play"; +import { RegularGameMode } from "./modes/regular"; + +export function initGameModeRegistry() { + gGameModeRegistry.register(PuzzleEditGameMode); + gGameModeRegistry.register(PuzzlePlayGameMode); + gGameModeRegistry.register(RegularGameMode); +} diff --git a/src/js/game/game_system_manager.js b/src/js/game/game_system_manager.js index 74ba798f..08609f89 100644 --- a/src/js/game/game_system_manager.js +++ b/src/js/game/game_system_manager.js @@ -24,6 +24,9 @@ import { ItemProcessorOverlaysSystem } from "./systems/item_processor_overlays"; import { BeltReaderSystem } from "./systems/belt_reader"; import { FilterSystem } from "./systems/filter"; import { ItemProducerSystem } from "./systems/item_producer"; +import { ConstantProducerSystem } from "./systems/constant_producer"; +import { GoalAcceptorSystem } from "./systems/goal_acceptor"; +import { ZoneSystem } from "./systems/zone"; const logger = createLogger("game_system_manager"); @@ -100,6 +103,15 @@ export class GameSystemManager { /** @type {ItemProducerSystem} */ itemProducer: null, + /** @type {ConstantProducerSystem} */ + ConstantProducer: null, + + /** @type {GoalAcceptorSystem} */ + GoalAcceptor: null, + + /** @type {ZoneSystem} */ + zone: null, + /* typehints:end */ }; this.systemUpdateOrder = []; @@ -138,7 +150,9 @@ export class GameSystemManager { add("itemEjector", ItemEjectorSystem); - add("mapResources", MapResourcesSystem); + if (this.root.gameMode.hasResources()) { + add("mapResources", MapResourcesSystem); + } add("hub", HubSystem); @@ -165,6 +179,14 @@ export class GameSystemManager { add("itemProcessorOverlays", ItemProcessorOverlaysSystem); + add("constantProducer", ConstantProducerSystem); + + add("goalAcceptor", GoalAcceptorSystem); + + if (this.root.gameMode.getBuildableZones()) { + add("zone", ZoneSystem); + } + logger.log("📦 There are", this.systemUpdateOrder.length, "game systems"); } diff --git a/src/js/game/hub_goals.js b/src/js/game/hub_goals.js index 9a945128..8351775e 100644 --- a/src/js/game/hub_goals.js +++ b/src/js/game/hub_goals.js @@ -110,7 +110,7 @@ export class HubGoals extends BasicSerializableObject { // Allow quickly switching goals in dev mode if (G_IS_DEV) { window.addEventListener("keydown", ev => { - if (ev.key === "b") { + if (ev.key === "p") { // root is not guaranteed to exist within ~0.5s after loading in if (this.root && this.root.app && this.root.app.gameAnalytics) { if (!this.isEndOfDemoReached()) { @@ -169,7 +169,7 @@ export class HubGoals extends BasicSerializableObject { getCurrentGoalDelivered() { if (this.currentGoal.throughputOnly) { return ( - this.root.productionAnalytics.getCurrentShapeRate( + this.root.productionAnalytics.getCurrentShapeRateRaw( enumAnalyticsDataSource.delivered, this.currentGoal.definition ) / globalConfig.analyticsSliceDurationSeconds @@ -195,6 +195,10 @@ export class HubGoals extends BasicSerializableObject { if (G_IS_DEV && globalConfig.debug.allBuildingsUnlocked) { return true; } + if (this.root.gameMode.getLevelDefinitions().length < 1) { + // no story, so always unlocked + return true; + } return !!this.gainedRewards[reward]; } @@ -472,6 +476,9 @@ export class HubGoals extends BasicSerializableObject { * @returns {number} items / sec */ getBeltBaseSpeed() { + if (this.root.gameMode.throughputDoesNotMatter()) { + return globalConfig.beltSpeedItemsPerSecond * globalConfig.puzzleModeSpeed; + } return globalConfig.beltSpeedItemsPerSecond * this.upgradeImprovements.belt; } @@ -480,6 +487,9 @@ export class HubGoals extends BasicSerializableObject { * @returns {number} items / sec */ getUndergroundBeltBaseSpeed() { + if (this.root.gameMode.throughputDoesNotMatter()) { + return globalConfig.beltSpeedItemsPerSecond * globalConfig.puzzleModeSpeed; + } return globalConfig.beltSpeedItemsPerSecond * this.upgradeImprovements.belt; } @@ -488,6 +498,9 @@ export class HubGoals extends BasicSerializableObject { * @returns {number} items / sec */ getMinerBaseSpeed() { + if (this.root.gameMode.throughputDoesNotMatter()) { + return globalConfig.minerSpeedItemsPerSecond * globalConfig.puzzleModeSpeed; + } return globalConfig.minerSpeedItemsPerSecond * this.upgradeImprovements.miner; } @@ -497,9 +510,14 @@ export class HubGoals extends BasicSerializableObject { * @returns {number} items / sec */ getProcessorBaseSpeed(processorType) { + if (this.root.gameMode.throughputDoesNotMatter()) { + return globalConfig.beltSpeedItemsPerSecond * globalConfig.puzzleModeSpeed * 10; + } + switch (processorType) { case enumItemProcessorTypes.trash: case enumItemProcessorTypes.hub: + case enumItemProcessorTypes.goal: return 1e30; case enumItemProcessorTypes.balancer: return globalConfig.beltSpeedItemsPerSecond * this.upgradeImprovements.belt * 2; diff --git a/src/js/game/hud/hud.js b/src/js/game/hud/hud.js index a8448975..a8b4364e 100644 --- a/src/js/game/hud/hud.js +++ b/src/js/game/hud/hud.js @@ -1,33 +1,15 @@ -/* typehints:start */ -import { GameRoot } from "../root"; -/* typehints:end */ - -/* dev:start */ -import { TrailerMaker } from "./trailer_maker"; -/* dev:end */ - -import { Signal } from "../../core/signal"; +import { globalConfig } from "../../core/config"; import { DrawParameters } from "../../core/draw_parameters"; +import { Signal } from "../../core/signal"; +import { KEYMAPPINGS } from "../key_action_mapper"; +import { MetaBuilding } from "../meta_building"; +import { GameRoot } from "../root"; +import { ShapeDefinition } from "../shape_definition"; +import { HUDBlueprintPlacer } from "./parts/blueprint_placer"; import { HUDBuildingsToolbar } from "./parts/buildings_toolbar"; import { HUDBuildingPlacer } from "./parts/building_placer"; -import { HUDBlueprintPlacer } from "./parts/blueprint_placer"; -import { HUDKeybindingOverlay } from "./parts/keybinding_overlay"; -import { HUDUnlockNotification } from "./parts/unlock_notification"; -import { HUDGameMenu } from "./parts/game_menu"; -import { HUDShop } from "./parts/shop"; -import { IS_MOBILE, globalConfig } from "../../core/config"; -import { HUDMassSelector } from "./parts/mass_selector"; -import { HUDVignetteOverlay } from "./parts/vignette_overlay"; -import { HUDStatistics } from "./parts/statistics"; -import { MetaBuilding } from "../meta_building"; -import { HUDPinnedShapes } from "./parts/pinned_shapes"; -import { ShapeDefinition } from "../shape_definition"; -import { HUDNotifications, enumNotificationType } from "./parts/notifications"; -import { HUDSettingsMenu } from "./parts/settings_menu"; import { HUDDebugInfo } from "./parts/debug_info"; import { HUDEntityDebugger } from "./parts/entity_debugger"; -import { KEYMAPPINGS } from "../key_action_mapper"; -import { HUDWatermark } from "./parts/watermark"; import { HUDModalDialogs } from "./parts/modal_dialogs"; import { HUDPartTutorialHints } from "./parts/tutorial_hints"; import { HUDWaypoints } from "./parts/waypoints"; @@ -49,6 +31,11 @@ import { HUDStandaloneAdvantages } from "./parts/standalone_advantages"; import { HUDCatMemes } from "./parts/cat_memes"; import { HUDTutorialVideoOffer } from "./parts/tutorial_video_offer"; import { Entity } from "../entity"; +import { enumNotificationType } from "./parts/notifications"; +import { HUDSettingsMenu } from "./parts/settings_menu"; +import { HUDShapeTooltip } from "./parts/shape_tooltip"; +import { HUDVignetteOverlay } from "./parts/vignette_overlay"; +import { TrailerMaker } from "./trailer_maker"; export class GameHUD { /** @@ -76,32 +63,16 @@ export class GameHUD { this.parts = { buildingsToolbar: new HUDBuildingsToolbar(this.root), - wiresToolbar: new HUDWiresToolbar(this.root), + blueprintPlacer: new HUDBlueprintPlacer(this.root), buildingPlacer: new HUDBuildingPlacer(this.root), - unlockNotification: new HUDUnlockNotification(this.root), - gameMenu: new HUDGameMenu(this.root), - massSelector: new HUDMassSelector(this.root), - shop: new HUDShop(this.root), - statistics: new HUDStatistics(this.root), - waypoints: new HUDWaypoints(this.root), - wireInfo: new HUDWireInfo(this.root), - leverToggle: new HUDLeverToggle(this.root), + + shapeTooltip: new HUDShapeTooltip(this.root), // Must always exist - pinnedShapes: new HUDPinnedShapes(this.root), - notifications: new HUDNotifications(this.root), settingsMenu: new HUDSettingsMenu(this.root), debugInfo: new HUDDebugInfo(this.root), dialogs: new HUDModalDialogs(this.root), - screenshotExporter: new HUDScreenshotExporter(this.root), - shapeViewer: new HUDShapeViewer(this.root), - - wiresOverlay: new HUDWiresOverlay(this.root), - layerPreview: new HUDLayerPreview(this.root), - - minerHighlight: new HUDMinerHighlight(this.root), - tutorialVideoOffer: new HUDTutorialVideoOffer(this.root), // Typing hints /* typehints:start */ @@ -110,29 +81,14 @@ export class GameHUD { /* typehints:end */ }; - if (!IS_MOBILE) { - this.parts.keybindingOverlay = new HUDKeybindingOverlay(this.root); - } - if (G_IS_DEV && globalConfig.debug.enableEntityInspector) { this.parts.entityDebugger = new HUDEntityDebugger(this.root); } - if (this.root.app.restrictionMgr.getIsStandaloneMarketingActive()) { - this.parts.watermark = new HUDWatermark(this.root); - this.parts.standaloneAdvantages = new HUDStandaloneAdvantages(this.root); - this.parts.catMemes = new HUDCatMemes(this.root); - } - if (G_IS_DEV && globalConfig.debug.renderChanges) { this.parts.changesDebugger = new HUDChangesDebugger(this.root); } - if (this.root.app.settings.getAllSettings().offerHints) { - this.parts.tutorialHints = new HUDPartTutorialHints(this.root); - this.parts.interactiveTutorial = new HUDInteractiveTutorial(this.root); - } - if (this.root.app.settings.getAllSettings().vignette) { this.parts.vignetteOverlay = new HUDVignetteOverlay(this.root); } @@ -141,14 +97,15 @@ export class GameHUD { this.parts.colorBlindHelper = new HUDColorBlindHelper(this.root); } - if (queryParamOptions.sandboxMode || G_IS_DEV) { - this.parts.sandboxController = new HUDSandboxController(this.root); - } - if (!G_IS_RELEASE && !G_IS_DEV) { this.parts.betaOverlay = new HUDBetaOverlay(this.root); } + const additionalParts = this.root.gameMode.additionalHudParts; + for (const [partId, part] of Object.entries(additionalParts)) { + this.parts[partId] = new part(this.root); + } + const frag = document.createDocumentFragment(); for (const key in this.parts) { this.parts[key].createElements(frag); @@ -252,6 +209,7 @@ export class GameHUD { "colorBlindHelper", "changesDebugger", "minerHighlight", + "shapeTooltip", ]; for (let i = 0; i < partsOrder.length; ++i) { diff --git a/src/js/game/hud/parts/HUDPuzzleNextPuzzle.js b/src/js/game/hud/parts/HUDPuzzleNextPuzzle.js new file mode 100644 index 00000000..472a3491 --- /dev/null +++ b/src/js/game/hud/parts/HUDPuzzleNextPuzzle.js @@ -0,0 +1,29 @@ +/* typehints:start */ +import { PuzzlePlayGameMode } from "../../modes/puzzle_play"; +/* typehints:end */ + +import { makeDiv } from "../../../core/utils"; +import { T } from "../../../translations"; + +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDPuzzleNextPuzzle extends BaseHUDPart { + createElements(parent) { + this.element = makeDiv(parent, "ingame_HUD_PuzzleNextPuzzle"); + this.button = document.createElement("button"); + this.button.classList.add("button"); + this.button.innerText = T.ingame.puzzleCompletion.nextPuzzle; + this.element.appendChild(this.button); + + this.trackClicks(this.button, this.nextPuzzle); + } + + initialize() {} + + nextPuzzle() { + const gameMode = /** @type {PuzzlePlayGameMode} */ (this.root.gameMode); + this.root.gameState.moveToState("PuzzleMenuState", { + continueQueue: gameMode.nextPuzzles, + }); + } +} diff --git a/src/js/game/hud/parts/base_toolbar.js b/src/js/game/hud/parts/base_toolbar.js index a0e2a49f..15faad66 100644 --- a/src/js/game/hud/parts/base_toolbar.js +++ b/src/js/game/hud/parts/base_toolbar.js @@ -1,6 +1,10 @@ import { gMetaBuildingRegistry } from "../../../core/global_registries"; -import { Signal, STOP_PROPAGATION } from "../../../core/signal"; -import { makeDiv } from "../../../core/utils"; +import { STOP_PROPAGATION } from "../../../core/signal"; +import { makeDiv, safeModulo } from "../../../core/utils"; +import { MetaBlockBuilding } from "../../buildings/block"; +import { MetaConstantProducerBuilding } from "../../buildings/constant_producer"; +import { MetaGoalAcceptorBuilding } from "../../buildings/goal_acceptor"; +import { StaticMapEntityComponent } from "../../components/static_map_entity"; import { KEYMAPPINGS } from "../../key_action_mapper"; import { MetaBuilding } from "../../meta_building"; import { GameRoot } from "../../root"; @@ -23,8 +27,8 @@ export class HUDBaseToolbar extends BaseHUDPart { ) { super(root); - this.primaryBuildings = primaryBuildings; - this.secondaryBuildings = secondaryBuildings; + this.primaryBuildings = this.filterBuildings(primaryBuildings); + this.secondaryBuildings = this.filterBuildings(secondaryBuildings); this.visibilityCondition = visibilityCondition; this.htmlElementId = htmlElementId; this.layer = layer; @@ -35,6 +39,7 @@ export class HUDBaseToolbar extends BaseHUDPart { * selected: boolean, * element: HTMLElement, * index: number + * puzzleLocked: boolean; * }>} */ this.buildingHandles = {}; } @@ -47,6 +52,24 @@ export class HUDBaseToolbar extends BaseHUDPart { this.element = makeDiv(parent, this.htmlElementId, ["ingame_buildingsToolbar"], ""); } + /** + * @param {Array} buildings + * @returns {Array} + */ + filterBuildings(buildings) { + const filtered = []; + + for (let i = 0; i < buildings.length; i++) { + if (this.root.gameMode.isBuildingExcluded(buildings[i])) { + continue; + } + + filtered.push(buildings[i]); + } + + return filtered; + } + /** * Returns all buildings * @returns {Array} @@ -87,19 +110,31 @@ export class HUDBaseToolbar extends BaseHUDPart { ); itemContainer.setAttribute("data-icon", "building_icons/" + metaBuilding.getId() + ".png"); itemContainer.setAttribute("data-id", metaBuilding.getId()); - binding.add(() => this.selectBuildingForPlacement(metaBuilding)); - this.trackClicks(itemContainer, () => this.selectBuildingForPlacement(metaBuilding), { + const icon = makeDiv(itemContainer, null, ["icon"]); + + this.trackClicks(icon, () => this.selectBuildingForPlacement(metaBuilding), { clickSound: null, }); + //lock icon for puzzle editor + if (this.root.gameMode.getIsEditor() && !this.inRequiredBuildings(metaBuilding)) { + const puzzleLock = makeDiv(itemContainer, null, ["puzzle-lock"]); + + itemContainer.classList.toggle("editor", true); + this.trackClicks(puzzleLock, () => this.toggleBuildingLock(metaBuilding), { + clickSound: null, + }); + } + this.buildingHandles[metaBuilding.id] = { - metaBuilding, + metaBuilding: metaBuilding, element: itemContainer, unlocked: false, selected: false, index: i, + puzzleLocked: false, }; } @@ -127,7 +162,7 @@ export class HUDBaseToolbar extends BaseHUDPart { let recomputeSecondaryToolbarVisibility = false; for (const buildingId in this.buildingHandles) { const handle = this.buildingHandles[buildingId]; - const newStatus = handle.metaBuilding.getIsUnlocked(this.root); + const newStatus = !handle.puzzleLocked && handle.metaBuilding.getIsUnlocked(this.root); if (handle.unlocked !== newStatus) { handle.unlocked = newStatus; handle.element.classList.toggle("unlocked", newStatus); @@ -161,8 +196,12 @@ export class HUDBaseToolbar extends BaseHUDPart { let newBuildingFound = false; let newIndex = this.lastSelectedIndex; - for (let i = 0; i < this.primaryBuildings.length; ++i, ++newIndex) { - newIndex %= this.primaryBuildings.length; + const direction = this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateInverseModifier).pressed + ? -1 + : 1; + + for (let i = 0; i <= this.primaryBuildings.length; ++i) { + newIndex = safeModulo(newIndex + direction, this.primaryBuildings.length); const metaBuilding = gMetaBuildingRegistry.findByClass(this.primaryBuildings[newIndex]); const handle = this.buildingHandles[metaBuilding.id]; if (!handle.selected && handle.unlocked) { @@ -212,6 +251,14 @@ export class HUDBaseToolbar extends BaseHUDPart { return STOP_PROPAGATION; } + const handle = this.buildingHandles[metaBuilding.getId()]; + if (handle.puzzleLocked) { + handle.puzzleLocked = false; + handle.element.classList.toggle("unlocked", false); + this.root.soundProxy.playUiClick(); + return; + } + // Allow clicking an item again to deselect it for (const buildingId in this.buildingHandles) { const handle = this.buildingHandles[buildingId]; @@ -225,4 +272,51 @@ export class HUDBaseToolbar extends BaseHUDPart { this.root.hud.signals.buildingSelectedForPlacement.dispatch(metaBuilding); this.onSelectedPlacementBuildingChanged(metaBuilding); } + + /** + * @param {MetaBuilding} metaBuilding + */ + toggleBuildingLock(metaBuilding) { + if (!this.visibilityCondition()) { + // Not active + return; + } + + if (this.inRequiredBuildings(metaBuilding) || !metaBuilding.getIsUnlocked(this.root)) { + this.root.soundProxy.playUiError(); + return STOP_PROPAGATION; + } + + const handle = this.buildingHandles[metaBuilding.getId()]; + handle.puzzleLocked = !handle.puzzleLocked; + handle.element.classList.toggle("unlocked", !handle.puzzleLocked); + this.root.soundProxy.playUiClick(); + + const entityManager = this.root.entityMgr; + for (const entity of entityManager.getAllWithComponent(StaticMapEntityComponent)) { + const staticComp = entity.components.StaticMapEntity; + if (staticComp.getMetaBuilding().id === metaBuilding.id) { + this.root.map.removeStaticEntity(entity); + entityManager.destroyEntity(entity); + } + } + entityManager.processDestroyList(); + + const currentMetaBuilding = this.root.hud.parts.buildingPlacer.currentMetaBuilding; + if (currentMetaBuilding.get() == metaBuilding) { + currentMetaBuilding.set(null); + } + } + + /** + * @param {MetaBuilding} metaBuilding + */ + inRequiredBuildings(metaBuilding) { + const requiredBuildings = [ + gMetaBuildingRegistry.findByClass(MetaConstantProducerBuilding), + gMetaBuildingRegistry.findByClass(MetaGoalAcceptorBuilding), + gMetaBuildingRegistry.findByClass(MetaBlockBuilding), + ]; + return requiredBuildings.includes(metaBuilding); + } } diff --git a/src/js/game/hud/parts/blueprint_placer.js b/src/js/game/hud/parts/blueprint_placer.js index 1c405a91..a4aece67 100644 --- a/src/js/game/hud/parts/blueprint_placer.js +++ b/src/js/game/hud/parts/blueprint_placer.js @@ -51,6 +51,10 @@ export class HUDBlueprintPlacer extends BaseHUDPart { this.trackedCanAfford = new TrackedState(this.onCanAffordChanged, this); } + getHasFreeCopyPaste() { + return this.root.gameMode.getHasFreeCopyPaste(); + } + abortPlacement() { if (this.currentBlueprint.get()) { this.currentBlueprint.set(null); @@ -83,7 +87,9 @@ export class HUDBlueprintPlacer extends BaseHUDPart { update() { const currentBlueprint = this.currentBlueprint.get(); - this.domAttach.update(currentBlueprint && currentBlueprint.getCost() > 0); + this.domAttach.update( + !this.getHasFreeCopyPaste() && currentBlueprint && currentBlueprint.getCost() > 0 + ); this.trackedCanAfford.set(currentBlueprint && currentBlueprint.canAfford(this.root)); } @@ -109,29 +115,32 @@ export class HUDBlueprintPlacer extends BaseHUDPart { this.abortPlacement(); return STOP_PROPAGATION; } - } + } else if (button === enumMouseButton.left) { + const blueprint = this.currentBlueprint.get(); + if (!blueprint) { + return; + } - const blueprint = this.currentBlueprint.get(); - if (!blueprint) { - return; - } + if (!this.getHasFreeCopyPaste() && !blueprint.canAfford(this.root)) { + this.root.soundProxy.playUiError(); + return; + } - if (!blueprint.canAfford(this.root)) { - this.root.soundProxy.playUiError(); - return; - } - - const worldPos = this.root.camera.screenToWorld(pos); - const tile = worldPos.toTileSpace(); - if (blueprint.tryPlace(this.root, tile)) { - const cost = blueprint.getCost(); - this.root.hubGoals.takeShapeByKey(this.root.gameMode.getBlueprintShapeKey(), cost); - this.root.soundProxy.playUi(SOUNDS.placeBuilding); + const worldPos = this.root.camera.screenToWorld(pos); + const tile = worldPos.toTileSpace(); + if (blueprint.tryPlace(this.root, tile)) { + if (!this.getHasFreeCopyPaste()) { + const cost = blueprint.getCost(); + this.root.hubGoals.takeShapeByKey(this.root.gameMode.getBlueprintShapeKey(), cost); + } + this.root.soundProxy.playUi(SOUNDS.placeBuilding); + } + return STOP_PROPAGATION; } } /** - * Mose move handler + * Mouse move handler */ onMouseMove() { // Prevent movement while blueprint is selected diff --git a/src/js/game/hud/parts/building_placer.js b/src/js/game/hud/parts/building_placer.js index 7dccb7a4..33e6ebc2 100644 --- a/src/js/game/hud/parts/building_placer.js +++ b/src/js/game/hud/parts/building_placer.js @@ -216,8 +216,8 @@ export class HUDBuildingPlacer extends HUDBuildingPlacerLogic { const dimensions = metaBuilding.getDimensions(variant); const sprite = metaBuilding.getPreviewSprite(0, variant); const spriteWrapper = makeDiv(element, null, ["iconWrap"]); - spriteWrapper.setAttribute("data-tile-w", dimensions.x); - spriteWrapper.setAttribute("data-tile-h", dimensions.y); + spriteWrapper.setAttribute("data-tile-w", String(dimensions.x)); + spriteWrapper.setAttribute("data-tile-h", String(dimensions.y)); spriteWrapper.innerHTML = sprite.getAsHTML(iconSize * dimensions.x, iconSize * dimensions.y); @@ -234,7 +234,7 @@ export class HUDBuildingPlacer extends HUDBuildingPlacerLogic { * @param {DrawParameters} parameters */ draw(parameters) { - if (this.root.camera.zoomLevel < globalConfig.mapChunkOverviewMinZoom) { + if (this.root.camera.getIsMapOverlayActive()) { // Dont allow placing in overview mode this.domAttach.update(false); this.variantsAttach.update(false); @@ -275,11 +275,13 @@ export class HUDBuildingPlacer extends HUDBuildingPlacerLogic { const worldPosition = this.root.camera.screenToWorld(mousePosition); // Draw peeker - this.root.hud.parts.layerPreview.renderPreview( - parameters, - worldPosition, - 1 / this.root.camera.zoomLevel - ); + if (this.root.hud.parts.layerPreview) { + this.root.hud.parts.layerPreview.renderPreview( + parameters, + worldPosition, + 1 / this.root.camera.zoomLevel + ); + } } /** diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index 4f3a0570..7ed412f6 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -14,6 +14,7 @@ import { MetaMinerBuilding, enumMinerVariants } from "../../buildings/miner"; import { enumHubGoalRewards } from "../../tutorial_goals"; import { getBuildingDataFromCode, getCodeFromBuildingData } from "../../building_codes"; import { MetaHubBuilding } from "../../buildings/hub"; +import { safeModulo } from "../../../core/utils"; /** * Contains all logic for the building placer - this doesn't include the rendering @@ -109,6 +110,12 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { // KEYBINDINGS const keyActionMapper = this.root.keyMapper; keyActionMapper.getBinding(KEYMAPPINGS.placement.rotateWhilePlacing).add(this.tryRotate, this); + + keyActionMapper.getBinding(KEYMAPPINGS.placement.rotateToUp).add(this.trySetRotate, this); + keyActionMapper.getBinding(KEYMAPPINGS.placement.rotateToDown).add(this.trySetRotate, this); + keyActionMapper.getBinding(KEYMAPPINGS.placement.rotateToRight).add(this.trySetRotate, this); + keyActionMapper.getBinding(KEYMAPPINGS.placement.rotateToLeft).add(this.trySetRotate, this); + keyActionMapper.getBinding(KEYMAPPINGS.placement.cycleBuildingVariants).add(this.cycleVariants, this); keyActionMapper .getBinding(KEYMAPPINGS.placement.switchDirectionLockSide) @@ -121,7 +128,6 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { this.root.hud.signals.buildingsSelectedForCopy.add(this.abortPlacement, this); this.root.hud.signals.pasteBlueprintRequested.add(this.abortPlacement, this); this.root.signals.storyGoalCompleted.add(() => this.signals.variantChanged.dispatch()); - this.root.signals.storyGoalCompleted.add(() => this.currentMetaBuilding.set(null)); this.root.signals.upgradePurchased.add(() => this.signals.variantChanged.dispatch()); this.root.signals.editModeChanged.add(this.onEditModeChanged, this); @@ -289,6 +295,28 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { staticComp.rotation = this.currentBaseRotation; } } + + /** + * Rotates the current building to the specified direction. + */ + trySetRotate() { + const selectedBuilding = this.currentMetaBuilding.get(); + if (selectedBuilding) { + if (this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateToUp).pressed) { + this.currentBaseRotation = 0; + } else if (this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateToDown).pressed) { + this.currentBaseRotation = 180; + } else if (this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateToRight).pressed) { + this.currentBaseRotation = 90; + } else if (this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateToLeft).pressed) { + this.currentBaseRotation = 270; + } + + const staticComp = this.fakeEntity.components.StaticMapEntity; + staticComp.rotation = this.currentBaseRotation; + } + } + /** * Tries to delete the building under the mouse */ @@ -337,7 +365,8 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { if ( tileBelow && this.root.app.settings.getAllSettings().pickMinerOnPatch && - this.root.currentLayer === "regular" + this.root.currentLayer === "regular" && + this.root.gameMode.hasResources() ) { this.currentMetaBuilding.set(gMetaBuildingRegistry.findByClass(MetaMinerBuilding)); @@ -361,6 +390,12 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { return; } + // Disallow picking excluded buildings + if (this.root.gameMode.isBuildingExcluded(extracted.metaClass)) { + this.currentMetaBuilding.set(null); + return; + } + // If the building we are picking is the same as the one we have, clear the cursor. if ( this.currentMetaBuilding.get() && @@ -401,7 +436,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { * @param {Vector} tile */ tryPlaceCurrentBuildingAt(tile) { - if (this.root.camera.zoomLevel < globalConfig.mapChunkOverviewMinZoom) { + if (this.root.camera.getIsMapOverlayActive()) { // Dont allow placing in overview mode return; } @@ -467,7 +502,12 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { index = 0; console.warn("Invalid variant selected:", this.currentVariant.get()); } - const newIndex = (index + 1) % availableVariants.length; + const direction = this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateInverseModifier) + .pressed + ? -1 + : 1; + + const newIndex = safeModulo(index + direction, availableVariants.length); const newVariant = availableVariants[newIndex]; this.setVariant(newVariant); } diff --git a/src/js/game/hud/parts/buildings_toolbar.js b/src/js/game/hud/parts/buildings_toolbar.js index 05ffc795..994a70ed 100644 --- a/src/js/game/hud/parts/buildings_toolbar.js +++ b/src/js/game/hud/parts/buildings_toolbar.js @@ -15,23 +15,28 @@ import { MetaUndergroundBeltBuilding } from "../../buildings/underground_belt"; import { HUDBaseToolbar } from "./base_toolbar"; import { MetaStorageBuilding } from "../../buildings/storage"; import { MetaItemProducerBuilding } from "../../buildings/item_producer"; -import { queryParamOptions } from "../../../core/query_parameters"; +import { MetaConstantProducerBuilding } from "../../buildings/constant_producer"; +import { MetaGoalAcceptorBuilding } from "../../buildings/goal_acceptor"; +import { MetaBlockBuilding } from "../../buildings/block"; export class HUDBuildingsToolbar extends HUDBaseToolbar { constructor(root) { super(root, { primaryBuildings: [ + MetaConstantProducerBuilding, + MetaGoalAcceptorBuilding, MetaBeltBuilding, MetaBalancerBuilding, MetaUndergroundBeltBuilding, MetaMinerBuilding, + MetaBlockBuilding, MetaCutterBuilding, MetaRotaterBuilding, MetaStackerBuilding, MetaMixerBuilding, MetaPainterBuilding, MetaTrashBuilding, - ...(queryParamOptions.sandboxMode || G_IS_DEV ? [MetaItemProducerBuilding] : []), + MetaItemProducerBuilding, ], secondaryBuildings: [ MetaStorageBuilding, diff --git a/src/js/game/hud/parts/constant_signal_edit.js b/src/js/game/hud/parts/constant_signal_edit.js new file mode 100644 index 00000000..283c7619 --- /dev/null +++ b/src/js/game/hud/parts/constant_signal_edit.js @@ -0,0 +1,34 @@ +import { STOP_PROPAGATION } from "../../../core/signal"; +import { Vector } from "../../../core/vector"; +import { enumMouseButton } from "../../camera"; +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDConstantSignalEdit extends BaseHUDPart { + initialize() { + this.root.camera.downPreHandler.add(this.downPreHandler, this); + } + + /** + * @param {Vector} pos + * @param {enumMouseButton} button + */ + downPreHandler(pos, button) { + if (this.root.currentLayer !== "wires") { + return; + } + + const tile = this.root.camera.screenToWorld(pos).toTileSpace(); + const contents = this.root.map.getLayerContentXY(tile.x, tile.y, "wires"); + if (contents) { + const constantComp = contents.components.ConstantSignal; + if (constantComp) { + if (button === enumMouseButton.left) { + this.root.systemMgr.systems.constantSignal.editConstantSignal(contents, { + deleteOnCancel: false, + }); + return STOP_PROPAGATION; + } + } + } + } +} diff --git a/src/js/game/hud/parts/interactive_tutorial.js b/src/js/game/hud/parts/interactive_tutorial.js index e48a77fb..00c02b06 100644 --- a/src/js/game/hud/parts/interactive_tutorial.js +++ b/src/js/game/hud/parts/interactive_tutorial.js @@ -158,8 +158,13 @@ export class HUDInteractiveTutorial extends BaseHUDPart { onHintChanged(hintId) { this.elementDescription.innerHTML = T.ingame.interactiveTutorial.hints[hintId]; + + const folder = G_WEGAME_VERSION + ? "interactive_tutorial.cn.noinline" + : "interactive_tutorial.noinline"; + this.elementGif.style.backgroundImage = - "url('" + cachebust("res/ui/interactive_tutorial.noinline/" + hintId + ".gif") + "')"; + "url('" + cachebust("res/ui/" + folder + "/" + hintId + ".gif") + "')"; this.element.classList.toggle("animEven"); this.element.classList.toggle("animOdd"); } diff --git a/src/js/game/hud/parts/keybinding_overlay.js b/src/js/game/hud/parts/keybinding_overlay.js index 2417edcd..db009adf 100644 --- a/src/js/game/hud/parts/keybinding_overlay.js +++ b/src/js/game/hud/parts/keybinding_overlay.js @@ -254,6 +254,13 @@ export class HUDKeybindingOverlay extends BaseHUDPart { condition: () => this.anythingSelectedOnMap, }, + { + // [SELECTION] Clear + label: T.ingame.keybindingsOverlay.clearBelts, + keys: [k.massSelect.massSelectClear], + condition: () => this.anythingSelectedOnMap, + }, + { // Switch layers label: T.ingame.keybindingsOverlay.switchLayers, diff --git a/src/js/game/hud/parts/mass_selector.js b/src/js/game/hud/parts/mass_selector.js index baf992d7..b29ced96 100644 --- a/src/js/game/hud/parts/mass_selector.js +++ b/src/js/game/hud/parts/mass_selector.js @@ -1,33 +1,37 @@ -import { BaseHUDPart } from "../base_hud_part"; -import { Vector } from "../../../core/vector"; -import { STOP_PROPAGATION } from "../../../core/signal"; -import { DrawParameters } from "../../../core/draw_parameters"; -import { Entity } from "../../entity"; -import { Loader } from "../../../core/loader"; import { globalConfig } from "../../../core/config"; import { makeDiv, formatBigNumber, formatBigNumberFull } from "../../../core/utils"; import { DynamicDomAttach } from "../dynamic_dom_attach"; import { MapChunkView } from "../../map_chunk_view"; +import { DrawParameters } from "../../../core/draw_parameters"; +import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { createLogger } from "../../../core/logging"; -import { enumMouseButton } from "../../camera"; +import { STOP_PROPAGATION } from "../../../core/signal"; +import { Vector } from "../../../core/vector"; +import { ACHIEVEMENTS } from "../../../platform/achievement_provider"; import { T } from "../../../translations"; +import { Blueprint } from "../../blueprint"; +import { MetaBlockBuilding } from "../../buildings/block"; +import { MetaConstantProducerBuilding } from "../../buildings/constant_producer"; +import { enumMouseButton } from "../../camera"; +import { Component } from "../../component"; +import { Entity } from "../../entity"; import { KEYMAPPINGS } from "../../key_action_mapper"; import { THEME } from "../../theme"; import { enumHubGoalRewards } from "../../tutorial_goals"; -import { Blueprint } from "../../blueprint"; import { StaticMapEntityComponent } from "../../components/static_map_entity"; +import { BaseHUDPart } from "../base_hud_part"; const logger = createLogger("hud/mass_selector"); export class HUDMassSelector extends BaseHUDPart { - createElements(parent) {} + createElements(parent) { } initialize() { this.multiLayerSelect = false; this.currentSelectionStartWorld = null; - this.currentSelectionEnd = null; + this.currentSelectionEnd = null; - /**@type {Array} */ + /**@type {Array} */ this.selectedEntities = []; this.root.signals.entityQueuedForDestroy.add(this.onEntityDestroyed, this); @@ -37,12 +41,13 @@ export class HUDMassSelector extends BaseHUDPart { this.root.camera.movePreHandler.add(this.onMouseMove, this); this.root.camera.upPostHandler.add(this.onMouseUp, this); - this.root.keyMapper.getBinding(KEYMAPPINGS.general.back).add(this.onBack, this); + this.root.keyMapper.getBinding(KEYMAPPINGS.general.back).addToTop(this.onBack, this); this.root.keyMapper .getBinding(KEYMAPPINGS.massSelect.confirmMassDelete) .add(this.confirmDelete, this); this.root.keyMapper.getBinding(KEYMAPPINGS.massSelect.massSelectCut).add(this.confirmCut, this); this.root.keyMapper.getBinding(KEYMAPPINGS.massSelect.massSelectCopy).add(this.startCopy, this); + this.root.keyMapper.getBinding(KEYMAPPINGS.massSelect.massSelectClear).add(this.clearBelts, this); this.root.hud.signals.selectedPlacementBuildingChanged.add(this.clearSelection, this); this.root.signals.editModeChanged.add(this.clearSelection, this); @@ -55,10 +60,10 @@ export class HUDMassSelector extends BaseHUDPart { onEntityDestroyed(entity) { if (this.root.bulkOperationRunning) { return; - } - const index = this.selectedEntities.indexOf(entity); - if(index != -1) - this.selectedEntities.splice(index, 1); + } + const index = this.selectedEntities.indexOf(entity); + if (index != -1) + this.selectedEntities.splice(index, 1); } /** @@ -107,6 +112,7 @@ export class HUDMassSelector extends BaseHUDPart { */ const mapUidToEntity = this.root.entityMgr.getFrozenUidSearchMap(); + let count = 0; this.root.logic.performBulkOperation(() => { for (let i = 0; i < entities.length; ++i) { const entity = mapUidToEntity.get(entities[i].uid); @@ -118,8 +124,12 @@ export class HUDMassSelector extends BaseHUDPart { if (!this.root.logic.tryDeleteBuilding(entity)) { logger.error("Error in mass delete, could not remove building"); + } else { + count++; } } + + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.destroy1000, count); }); // Clear uids later @@ -134,10 +144,10 @@ export class HUDMassSelector extends BaseHUDPart { T.dialogs.blueprintsNotUnlocked.desc ); return; - } + } + + this.root.hud.signals.buildingsSelectedForCopy.dispatch(this.selectedEntities); - this.root.hud.signals.buildingsSelectedForCopy.dispatch(this.selectedEntities); - this.selectedEntities = []; this.root.soundProxy.playUiClick(); } else { @@ -145,6 +155,16 @@ export class HUDMassSelector extends BaseHUDPart { } } + clearBelts() { + for (const uid of this.selectedUids) { + const entity = this.root.entityMgr.findByUid(uid); + for (const component of Object.values(entity.components)) { + /** @type {Component} */ (component).clear(); + } + } + this.selectedUids = new Set(); + } + confirmCut() { if (!this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_blueprints)) { this.root.hud.parts.dialogs.showInfo( @@ -171,7 +191,7 @@ export class HUDMassSelector extends BaseHUDPart { doCut() { if (this.selectedEntities.length > 0) { - const entities = Array.from(this.selectedEntities); + const entities = Array.from(this.selectedEntities); const cutAction = () => { // copy code relies on entities still existing, so must copy before deleting. this.root.hud.signals.buildingsSelectedForCopy.dispatch(entities); @@ -263,8 +283,15 @@ export class HUDMassSelector extends BaseHUDPart { for (let i = 0; i < entities.length; ++i) { let entity = entities[i]; - if (entity && this.root.logic.canDeleteBuilding(entity)) + if (entity && this.root.logic.canDeleteBuilding(entity)) { + const staticComp = entity.components.StaticMapEntity; + + if (!staticComp.getMetaBuilding().getIsRemovable(this.root)) { + continue; + } + this.selectedEntities.push(entity); + } } } } @@ -322,14 +349,21 @@ export class HUDMassSelector extends BaseHUDPart { for (let i = 0; i < entities.length; ++i) { let entity = entities[i]; + if (entity && this.root.logic.canDeleteBuilding(entity)) { + const staticComp = entity.components.StaticMapEntity; + + if (!staticComp.getMetaBuilding().getIsRemovable(this.root)) { + continue; + } + // Prevent rendering the overlay twice const uid = entity.uid; if (renderedUids.has(uid)) { continue; } - renderedUids.add(uid); + renderedUids.add(uid); this.RenderSelectonPreviewTile(parameters, entity); } } @@ -337,11 +371,11 @@ export class HUDMassSelector extends BaseHUDPart { } } - //EXTREMELY SLOW. There must be a better way. (Possibly use a Array) - for(let i = 0; i < this.selectedEntities.length; ++ i){ - const entity = this.selectedEntities[i]; - this.RenderSelectonPreviewTile(parameters, entity); - } + //EXTREMELY SLOW. There must be a better way. (Possibly use a Array) + for (let i = 0; i < this.selectedEntities.length; ++i) { + const entity = this.selectedEntities[i]; + this.RenderSelectonPreviewTile(parameters, entity); + } // this.selectedUids.forEach(uid => { // const entity = this.root.entityMgr.findByUid(uid); diff --git a/src/js/game/hud/parts/modal_dialogs.js b/src/js/game/hud/parts/modal_dialogs.js index 263b23dd..33211cf6 100644 --- a/src/js/game/hud/parts/modal_dialogs.js +++ b/src/js/game/hud/parts/modal_dialogs.js @@ -29,11 +29,14 @@ export class HUDModalDialogs extends BaseHUDPart { } shouldPauseRendering() { - return this.dialogStack.length > 0; + // return this.dialogStack.length > 0; + // @todo: Check if change this affects anything + return false; } shouldPauseGame() { - return this.shouldPauseRendering(); + // @todo: Check if this change affects anything + return false; } createElements(parent) { @@ -122,7 +125,7 @@ export class HUDModalDialogs extends BaseHUDPart { dialog.buttonSignals.getStandalone.add(() => { this.app.analytics.trackUiClick("demo_dialog_click"); - window.open(THIRDPARTY_URLS.standaloneStorePage + "?ref=ddc"); + window.open(THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_demo_dialog"); }); return dialog.buttonSignals; @@ -139,8 +142,8 @@ export class HUDModalDialogs extends BaseHUDPart { } // Returns method to be called when laoding finishd - showLoadingDialog() { - const dialog = new DialogLoading(this.app); + showLoadingDialog(text = "") { + const dialog = new DialogLoading(this.app, text); this.internalShowDialog(dialog); return this.closeDialog.bind(this, dialog); } diff --git a/src/js/game/hud/parts/pinned_shapes.js b/src/js/game/hud/parts/pinned_shapes.js index 542a38b2..c5bb9a82 100644 --- a/src/js/game/hud/parts/pinned_shapes.js +++ b/src/js/game/hud/parts/pinned_shapes.js @@ -55,7 +55,7 @@ export class HUDPinnedShapes extends BaseHUDPart { */ deserialize(data) { if (!data || !data.shapes || !Array.isArray(data.shapes)) { - return "Invalid pinned shapes data"; + return "Invalid pinned shapes data: " + JSON.stringify(data); } this.pinnedShapes = data.shapes; } @@ -217,11 +217,14 @@ export class HUDPinnedShapes extends BaseHUDPart { let detector = null; if (canUnpin) { + const unpinButton = document.createElement("button"); + unpinButton.classList.add("unpinButton"); + element.appendChild(unpinButton); element.classList.add("removable"); - detector = new ClickDetector(element, { + detector = new ClickDetector(unpinButton, { consumeEvents: true, preventDefault: true, - targetOnly: false, + targetOnly: true, }); detector.click.add(() => this.unpinShape(key)); } else { @@ -229,15 +232,20 @@ export class HUDPinnedShapes extends BaseHUDPart { } // Show small info icon - const infoButton = document.createElement("button"); - infoButton.classList.add("infoButton"); - element.appendChild(infoButton); - const infoDetector = new ClickDetector(infoButton, { - consumeEvents: true, - preventDefault: true, - targetOnly: true, - }); - infoDetector.click.add(() => this.root.hud.signals.viewShapeDetailsRequested.dispatch(definition)); + let infoDetector; + if (!G_WEGAME_VERSION) { + const infoButton = document.createElement("button"); + infoButton.classList.add("infoButton"); + element.appendChild(infoButton); + infoDetector = new ClickDetector(infoButton, { + consumeEvents: true, + preventDefault: true, + targetOnly: true, + }); + infoDetector.click.add(() => + this.root.hud.signals.viewShapeDetailsRequested.dispatch(definition) + ); + } const amountLabel = makeDiv(element, null, ["amountLabel"], ""); @@ -270,7 +278,7 @@ export class HUDPinnedShapes extends BaseHUDPart { if (handle.throughputOnly) { currentValue = - this.root.productionAnalytics.getCurrentShapeRate( + this.root.productionAnalytics.getCurrentShapeRateRaw( enumAnalyticsDataSource.delivered, handle.definition ) / globalConfig.analyticsSliceDurationSeconds; diff --git a/src/js/game/hud/parts/puzzle_back_to_menu.js b/src/js/game/hud/parts/puzzle_back_to_menu.js new file mode 100644 index 00000000..bde5b66d --- /dev/null +++ b/src/js/game/hud/parts/puzzle_back_to_menu.js @@ -0,0 +1,21 @@ +import { makeDiv } from "../../../core/utils"; +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDPuzzleBackToMenu extends BaseHUDPart { + createElements(parent) { + const key = this.root.gameMode.getId(); + + this.element = makeDiv(parent, "ingame_HUD_PuzzleBackToMenu"); + this.button = document.createElement("button"); + this.button.classList.add("button"); + this.element.appendChild(this.button); + + this.trackClicks(this.button, this.back); + } + + initialize() {} + + back() { + this.root.gameState.goBackToMenu(); + } +} diff --git a/src/js/game/hud/parts/puzzle_complete_notification.js b/src/js/game/hud/parts/puzzle_complete_notification.js new file mode 100644 index 00000000..d83e33f1 --- /dev/null +++ b/src/js/game/hud/parts/puzzle_complete_notification.js @@ -0,0 +1,127 @@ +/* typehints:start */ +import { PuzzlePlayGameMode } from "../../modes/puzzle_play"; +/* typehints:end */ + +import { InputReceiver } from "../../../core/input_receiver"; +import { makeDiv } from "../../../core/utils"; +import { SOUNDS } from "../../../platform/sound"; +import { T } from "../../../translations"; +import { BaseHUDPart } from "../base_hud_part"; +import { DynamicDomAttach } from "../dynamic_dom_attach"; + +export class HUDPuzzleCompleteNotification extends BaseHUDPart { + initialize() { + this.visible = false; + + this.domAttach = new DynamicDomAttach(this.root, this.element, { + timeToKeepSeconds: 0, + }); + + this.root.signals.puzzleComplete.add(this.show, this); + + this.userDidLikePuzzle = false; + this.timeOfCompletion = 0; + } + + createElements(parent) { + this.inputReciever = new InputReceiver("puzzle-complete"); + + this.element = makeDiv(parent, "ingame_HUD_PuzzleCompleteNotification", ["noBlur"]); + + const dialog = makeDiv(this.element, null, ["dialog"]); + + this.elemTitle = makeDiv(dialog, null, ["title"], T.ingame.puzzleCompletion.title); + this.elemContents = makeDiv(dialog, null, ["contents"]); + this.elemActions = makeDiv(dialog, null, ["actions"]); + + const stepLike = makeDiv(this.elemContents, null, ["step", "stepLike"]); + makeDiv(stepLike, null, ["title"], T.ingame.puzzleCompletion.titleLike); + + const likeButtons = makeDiv(stepLike, null, ["buttons"]); + + this.buttonLikeYes = document.createElement("button"); + this.buttonLikeYes.classList.add("liked-yes"); + likeButtons.appendChild(this.buttonLikeYes); + this.trackClicks(this.buttonLikeYes, () => { + this.userDidLikePuzzle = !this.userDidLikePuzzle; + this.updateState(); + }); + + const buttonBar = document.createElement("div"); + buttonBar.classList.add("buttonBar"); + this.elemContents.appendChild(buttonBar); + + this.continueBtn = document.createElement("button"); + this.continueBtn.classList.add("continue", "styledButton"); + this.continueBtn.innerText = T.ingame.puzzleCompletion.continueBtn; + buttonBar.appendChild(this.continueBtn); + this.trackClicks(this.continueBtn, () => { + this.close(false); + }); + + this.menuBtn = document.createElement("button"); + this.menuBtn.classList.add("menu", "styledButton"); + this.menuBtn.innerText = T.ingame.puzzleCompletion.menuBtn; + buttonBar.appendChild(this.menuBtn); + this.trackClicks(this.menuBtn, () => { + this.close(true); + }); + + const gameMode = /** @type {PuzzlePlayGameMode} */ (this.root.gameMode); + if (gameMode.nextPuzzles.length > 0) { + this.nextPuzzleBtn = document.createElement("button"); + this.nextPuzzleBtn.classList.add("nextPuzzle", "styledButton"); + this.nextPuzzleBtn.innerText = T.ingame.puzzleCompletion.nextPuzzle; + buttonBar.appendChild(this.nextPuzzleBtn); + + this.trackClicks(this.nextPuzzleBtn, () => { + this.nextPuzzle(); + }); + } + } + + updateState() { + this.buttonLikeYes.classList.toggle("active", this.userDidLikePuzzle === true); + } + + show() { + this.root.soundProxy.playUi(SOUNDS.levelComplete); + this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); + this.visible = true; + this.timeOfCompletion = this.root.time.now(); + } + + cleanup() { + this.root.app.inputMgr.makeSureDetached(this.inputReciever); + } + + isBlockingOverlay() { + return this.visible; + } + + nextPuzzle() { + const gameMode = /** @type {PuzzlePlayGameMode} */ (this.root.gameMode); + gameMode.trackCompleted(this.userDidLikePuzzle, Math.round(this.timeOfCompletion)).then(() => { + this.root.gameState.moveToState("PuzzleMenuState", { + continueQueue: gameMode.nextPuzzles, + }); + }); + } + + close(toMenu) { + /** @type {PuzzlePlayGameMode} */ (this.root.gameMode) + .trackCompleted(this.userDidLikePuzzle, Math.round(this.timeOfCompletion)) + .then(() => { + if (toMenu) { + this.root.gameState.moveToState("PuzzleMenuState"); + } else { + this.visible = false; + this.cleanup(); + } + }); + } + + update() { + this.domAttach.update(this.visible); + } +} diff --git a/src/js/game/hud/parts/puzzle_dlc_logo.js b/src/js/game/hud/parts/puzzle_dlc_logo.js new file mode 100644 index 00000000..69519c0d --- /dev/null +++ b/src/js/game/hud/parts/puzzle_dlc_logo.js @@ -0,0 +1,14 @@ +import { makeDiv } from "../../../core/utils"; +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDPuzzleDLCLogo extends BaseHUDPart { + createElements(parent) { + this.element = makeDiv(parent, "ingame_HUD_PuzzleDLCLogo"); + this.element.classList.toggle("china", G_CHINA_VERSION || G_WEGAME_VERSION); + parent.appendChild(this.element); + } + + initialize() {} + + next() {} +} diff --git a/src/js/game/hud/parts/puzzle_editor_controls.js b/src/js/game/hud/parts/puzzle_editor_controls.js new file mode 100644 index 00000000..d8055f11 --- /dev/null +++ b/src/js/game/hud/parts/puzzle_editor_controls.js @@ -0,0 +1,18 @@ +import { makeDiv } from "../../../core/utils"; +import { T } from "../../../translations"; +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDPuzzleEditorControls extends BaseHUDPart { + createElements(parent) { + this.element = makeDiv(parent, "ingame_HUD_PuzzleEditorControls"); + + this.element.innerHTML = T.ingame.puzzleEditorControls.instructions + .map(text => `${text}`) + .join(""); + + this.titleElement = makeDiv(parent, "ingame_HUD_PuzzleEditorTitle"); + this.titleElement.innerText = T.ingame.puzzleEditorControls.title; + } + + initialize() {} +} diff --git a/src/js/game/hud/parts/puzzle_editor_review.js b/src/js/game/hud/parts/puzzle_editor_review.js new file mode 100644 index 00000000..4a044ba5 --- /dev/null +++ b/src/js/game/hud/parts/puzzle_editor_review.js @@ -0,0 +1,233 @@ +import { globalConfig, THIRDPARTY_URLS } from "../../../core/config"; +import { createLogger } from "../../../core/logging"; +import { DialogWithForm } from "../../../core/modal_dialog_elements"; +import { FormElementInput, FormElementItemChooser } from "../../../core/modal_dialog_forms"; +import { STOP_PROPAGATION } from "../../../core/signal"; +import { fillInLinkIntoTranslation, makeDiv } from "../../../core/utils"; +import { PuzzleSerializer } from "../../../savegame/puzzle_serializer"; +import { T } from "../../../translations"; +import { ConstantSignalComponent } from "../../components/constant_signal"; +import { GoalAcceptorComponent } from "../../components/goal_acceptor"; +import { StaticMapEntityComponent } from "../../components/static_map_entity"; +import { ShapeItem } from "../../items/shape_item"; +import { ShapeDefinition } from "../../shape_definition"; +import { BaseHUDPart } from "../base_hud_part"; + +const trim = require("trim"); +const logger = createLogger("puzzle-review"); + +export class HUDPuzzleEditorReview extends BaseHUDPart { + constructor(root) { + super(root); + } + + createElements(parent) { + const key = this.root.gameMode.getId(); + + this.element = makeDiv(parent, "ingame_HUD_PuzzleEditorReview"); + this.button = document.createElement("button"); + this.button.classList.add("button"); + this.button.textContent = T.puzzleMenu.reviewPuzzle; + this.element.appendChild(this.button); + + this.trackClicks(this.button, this.startReview); + } + + initialize() {} + + startReview() { + const validationError = this.validatePuzzle(); + if (validationError) { + this.root.hud.parts.dialogs.showWarning(T.puzzleMenu.validation.title, validationError); + return; + } + + const closeLoading = this.root.hud.parts.dialogs.showLoadingDialog(T.puzzleMenu.validatingPuzzle); + + // Wait a bit, so the user sees the puzzle actually got validated + setTimeout(() => { + // Manually simulate ticks + this.root.logic.clearAllBeltsAndItems(); + + const maxTicks = + this.root.gameMode.getFixedTickrate() * globalConfig.puzzleValidationDurationSeconds; + const deltaMs = this.root.dynamicTickrate.deltaMs; + logger.log("Simulating up to", maxTicks, "ticks, start=", this.root.time.now().toFixed(1)); + const now = performance.now(); + + let simulatedTicks = 0; + for (let i = 0; i < maxTicks; ++i) { + // Perform logic tick + this.root.time.performTicks(deltaMs, this.root.gameState.core.boundInternalTick); + simulatedTicks++; + + if (simulatedTicks % 100 == 0 && !this.validatePuzzle()) { + break; + } + } + + const duration = performance.now() - now; + logger.log( + "Simulated", + simulatedTicks, + "ticks, end=", + this.root.time.now().toFixed(1), + "duration=", + duration.toFixed(2), + "ms" + ); + + console.log("duration: " + duration); + closeLoading(); + + //if it took so little ticks that it must have autocompeted + if (simulatedTicks <= 500) { + this.root.hud.parts.dialogs.showWarning( + T.puzzleMenu.validation.title, + T.puzzleMenu.validation.autoComplete + ); + return; + } + + //if we reached maximum ticks and the puzzle still isn't completed + const validationError = this.validatePuzzle(); + if (simulatedTicks == maxTicks && validationError) { + this.root.hud.parts.dialogs.showWarning(T.puzzleMenu.validation.title, validationError); + return; + } + this.startSubmit(); + }, 750); + } + + startSubmit(title = "", shortKey = "") { + const regex = /^[a-zA-Z0-9_\- ]{4,20}$/; + const nameInput = new FormElementInput({ + id: "nameInput", + label: T.dialogs.submitPuzzle.descName, + placeholder: T.dialogs.submitPuzzle.placeholderName, + defaultValue: title, + validator: val => trim(val).match(regex) && trim(val).length > 0, + }); + + let items = new Set(); + const acceptors = this.root.entityMgr.getAllWithComponent(GoalAcceptorComponent); + for (const acceptor of acceptors) { + const item = acceptor.components.GoalAcceptor.item; + if (item.getItemType() === "shape") { + items.add(item); + } + } + + while (items.size < 8) { + // add some randoms + const item = this.root.hubGoals.computeFreeplayShape(Math.round(10 + Math.random() * 10000)); + items.add(new ShapeItem(item)); + } + + const itemInput = new FormElementItemChooser({ + id: "signalItem", + label: fillInLinkIntoTranslation(T.dialogs.submitPuzzle.descIcon, THIRDPARTY_URLS.shapeViewer), + items: Array.from(items), + }); + + const shapeKeyInput = new FormElementInput({ + id: "shapeKeyInput", + label: null, + placeholder: "CuCuCuCu", + defaultValue: shortKey, + validator: val => ShapeDefinition.isValidShortKey(trim(val)), + }); + + const dialog = new DialogWithForm({ + app: this.root.app, + title: T.dialogs.submitPuzzle.title, + desc: "", + formElements: [nameInput, itemInput, shapeKeyInput], + buttons: ["ok:good:enter"], + }); + + itemInput.valueChosen.add(value => { + shapeKeyInput.setValue(value.definition.getHash()); + }); + + this.root.hud.parts.dialogs.internalShowDialog(dialog); + + dialog.buttonSignals.ok.add(() => { + const title = trim(nameInput.getValue()); + const shortKey = trim(shapeKeyInput.getValue()); + this.doSubmitPuzzle(title, shortKey); + }); + } + + doSubmitPuzzle(title, shortKey) { + const serialized = new PuzzleSerializer().generateDumpFromGameRoot(this.root); + + logger.log("Submitting puzzle, title=", title, "shortKey=", shortKey); + if (G_IS_DEV) { + logger.log("Serialized data:", serialized); + } + + const closeLoading = this.root.hud.parts.dialogs.showLoadingDialog(T.puzzleMenu.submittingPuzzle); + + this.root.app.clientApi + .apiSubmitPuzzle({ + title, + shortKey, + data: serialized, + }) + .then( + () => { + closeLoading(); + const { ok } = this.root.hud.parts.dialogs.showInfo( + T.dialogs.puzzleSubmitOk.title, + T.dialogs.puzzleSubmitOk.desc + ); + ok.add(() => this.root.gameState.moveToState("PuzzleMenuState")); + }, + err => { + closeLoading(); + logger.warn("Failed to submit puzzle:", err); + const signals = this.root.hud.parts.dialogs.showWarning( + T.dialogs.puzzleSubmitError.title, + T.dialogs.puzzleSubmitError.desc + " " + err, + ["cancel", "retry:good"] + ); + signals.retry.add(() => this.startSubmit(title, shortKey)); + } + ); + } + + validatePuzzle() { + // Check there is at least one constant producer and goal acceptor + const producers = this.root.entityMgr.getAllWithComponent(ConstantSignalComponent); + const acceptors = this.root.entityMgr.getAllWithComponent(GoalAcceptorComponent); + + if (producers.length === 0) { + return T.puzzleMenu.validation.noProducers; + } + + if (acceptors.length === 0) { + return T.puzzleMenu.validation.noGoalAcceptors; + } + + // Check if all acceptors satisfy the constraints + for (const acceptor of acceptors) { + const goalComp = acceptor.components.GoalAcceptor; + if (!goalComp.item) { + return T.puzzleMenu.validation.goalAcceptorNoItem; + } + const required = globalConfig.goalAcceptorItemsRequired; + if (goalComp.currentDeliveredItems < required) { + return T.puzzleMenu.validation.goalAcceptorRateNotMet; + } + } + + // Check if all buildings are within the area + const entities = this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent); + for (const entity of entities) { + if (this.root.systemMgr.systems.zone.prePlacementCheck(entity) === STOP_PROPAGATION) { + return T.puzzleMenu.validation.buildingOutOfBounds; + } + } + } +} diff --git a/src/js/game/hud/parts/puzzle_editor_settings.js b/src/js/game/hud/parts/puzzle_editor_settings.js new file mode 100644 index 00000000..bd738198 --- /dev/null +++ b/src/js/game/hud/parts/puzzle_editor_settings.js @@ -0,0 +1,231 @@ +import { globalConfig } from "../../../core/config"; +import { gMetaBuildingRegistry } from "../../../core/global_registries"; +import { createLogger } from "../../../core/logging"; +import { Rectangle } from "../../../core/rectangle"; +import { makeDiv } from "../../../core/utils"; +import { T } from "../../../translations"; +import { MetaBlockBuilding } from "../../buildings/block"; +import { MetaConstantProducerBuilding } from "../../buildings/constant_producer"; +import { MetaGoalAcceptorBuilding } from "../../buildings/goal_acceptor"; +import { StaticMapEntityComponent } from "../../components/static_map_entity"; +import { PuzzleGameMode } from "../../modes/puzzle"; +import { BaseHUDPart } from "../base_hud_part"; + +const logger = createLogger("puzzle-editor"); + +export class HUDPuzzleEditorSettings extends BaseHUDPart { + createElements(parent) { + this.element = makeDiv(parent, "ingame_HUD_PuzzleEditorSettings"); + + if (this.root.gameMode.getBuildableZones()) { + const bind = (selector, handler) => + this.trackClicks(this.element.querySelector(selector), handler); + this.zone = makeDiv( + this.element, + null, + ["section", "zone"], + ` + + +
+
+ + + + +
+ +
+ + + + +
+ +
+ + +
+ +
+ +
+ +
` + ); + + bind(".zoneWidth .minus", () => this.modifyZone(-1, 0)); + bind(".zoneWidth .plus", () => this.modifyZone(1, 0)); + bind(".zoneHeight .minus", () => this.modifyZone(0, -1)); + bind(".zoneHeight .plus", () => this.modifyZone(0, 1)); + bind("button.trim", this.trim); + bind("button.clearItems", this.clearItems); + bind("button.resetPuzzle", this.resetPuzzle); + } + } + + clearItems() { + this.root.logic.clearAllBeltsAndItems(); + } + + resetPuzzle() { + for (const entity of this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) { + const staticComp = entity.components.StaticMapEntity; + const goalComp = entity.components.GoalAcceptor; + + if (goalComp) { + goalComp.clear(); + } + + if ( + [MetaGoalAcceptorBuilding, MetaConstantProducerBuilding, MetaBlockBuilding] + .map(metaClass => gMetaBuildingRegistry.findByClass(metaClass).id) + .includes(staticComp.getMetaBuilding().id) + ) { + continue; + } + + this.root.map.removeStaticEntity(entity); + this.root.entityMgr.destroyEntity(entity); + } + this.root.entityMgr.processDestroyList(); + } + + trim() { + // Now, find the center + const buildings = this.root.entityMgr.entities.slice(); + + if (buildings.length === 0) { + // nothing to do + return; + } + + let minRect = null; + + for (const building of buildings) { + const staticComp = building.components.StaticMapEntity; + const bounds = staticComp.getTileSpaceBounds(); + + if (!minRect) { + minRect = bounds; + } else { + minRect = minRect.getUnion(bounds); + } + } + + const mode = /** @type {PuzzleGameMode} */ (this.root.gameMode); + const moveByInverse = minRect.getCenter().round(); + + // move buildings + if (moveByInverse.length() > 0) { + // increase area size + mode.zoneWidth = globalConfig.puzzleMaxBoundsSize; + mode.zoneHeight = globalConfig.puzzleMaxBoundsSize; + + // First, remove any items etc + this.root.logic.clearAllBeltsAndItems(); + + this.root.logic.performImmutableOperation(() => { + // 1. remove all buildings + for (const building of buildings) { + if (!this.root.logic.tryDeleteBuilding(building)) { + assertAlways(false, "Failed to remove building in trim"); + } + } + + // 2. place them again, but centered + for (const building of buildings) { + const staticComp = building.components.StaticMapEntity; + const result = this.root.logic.tryPlaceBuilding({ + origin: staticComp.origin.sub(moveByInverse), + building: staticComp.getMetaBuilding(), + originalRotation: staticComp.originalRotation, + rotation: staticComp.rotation, + rotationVariant: staticComp.getRotationVariant(), + variant: staticComp.getVariant(), + }); + if (!result) { + this.root.bulkOperationRunning = false; + assertAlways(false, "Failed to re-place building in trim"); + } + + for (const key in building.components) { + /** @type {import("../../../core/global_registries").Component} */ (building + .components[key]).copyAdditionalStateTo(result.components[key]); + } + } + }); + } + + // 3. Actually trim + let w = mode.zoneWidth; + let h = mode.zoneHeight; + + while (!this.anyBuildingOutsideZone(w - 1, h)) { + --w; + } + + while (!this.anyBuildingOutsideZone(w, h - 1)) { + --h; + } + + mode.zoneWidth = w; + mode.zoneHeight = h; + this.updateZoneValues(); + } + + initialize() { + this.visible = true; + this.updateZoneValues(); + } + + anyBuildingOutsideZone(width, height) { + if (Math.min(width, height) < globalConfig.puzzleMinBoundsSize) { + return true; + } + const newZone = Rectangle.centered(width, height); + const entities = this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent); + + for (const entity of entities) { + const staticComp = entity.components.StaticMapEntity; + const bounds = staticComp.getTileSpaceBounds(); + if (!newZone.intersectsFully(bounds)) { + return true; + } + } + } + + modifyZone(deltaW, deltaH) { + const mode = /** @type {PuzzleGameMode} */ (this.root.gameMode); + + const newWidth = mode.zoneWidth + deltaW; + const newHeight = mode.zoneHeight + deltaH; + + if (Math.min(newWidth, newHeight) < globalConfig.puzzleMinBoundsSize) { + return; + } + + if (Math.max(newWidth, newHeight) > globalConfig.puzzleMaxBoundsSize) { + return; + } + + if (this.anyBuildingOutsideZone(newWidth, newHeight)) { + this.root.hud.parts.dialogs.showWarning( + T.dialogs.puzzleResizeBadBuildings.title, + T.dialogs.puzzleResizeBadBuildings.desc + ); + return; + } + + mode.zoneWidth = newWidth; + mode.zoneHeight = newHeight; + this.updateZoneValues(); + } + + updateZoneValues() { + const mode = /** @type {PuzzleGameMode} */ (this.root.gameMode); + + this.element.querySelector(".zoneWidth > .value").textContent = String(mode.zoneWidth); + this.element.querySelector(".zoneHeight > .value").textContent = String(mode.zoneHeight); + } +} diff --git a/src/js/game/hud/parts/puzzle_play_metadata.js b/src/js/game/hud/parts/puzzle_play_metadata.js new file mode 100644 index 00000000..3550a1e6 --- /dev/null +++ b/src/js/game/hud/parts/puzzle_play_metadata.js @@ -0,0 +1,72 @@ +/* typehints:start */ +import { PuzzlePlayGameMode } from "../../modes/puzzle_play"; +/* typehints:end */ + +import { formatBigNumberFull, formatSeconds, makeDiv } from "../../../core/utils"; +import { T } from "../../../translations"; +import { BaseHUDPart } from "../base_hud_part"; + +const copy = require("clipboard-copy"); + +export class HUDPuzzlePlayMetadata extends BaseHUDPart { + createElements(parent) { + this.titleElement = makeDiv(parent, "ingame_HUD_PuzzlePlayTitle"); + this.titleElement.innerText = "PUZZLE"; + + const mode = /** @type {PuzzlePlayGameMode} */ (this.root.gameMode); + const puzzle = mode.puzzle; + + this.puzzleNameElement = makeDiv(this.titleElement, null, ["name"]); + this.puzzleNameElement.innerText = puzzle.meta.title; + + this.element = makeDiv(parent, "ingame_HUD_PuzzlePlayMetadata"); + this.element.innerHTML = ` + +
+ ${formatBigNumberFull(puzzle.meta.downloads)} + +
+ + +
+
+ ${puzzle.meta.shortKey} +
+
+ + ${puzzle.meta.averageTime ? formatSeconds(puzzle.meta.averageTime) : "-"} +
+
+ + ${ + puzzle.meta.downloads > 0 + ? ((puzzle.meta.completions / puzzle.meta.downloads) * 100.0).toFixed(1) + "%" + : "-" + } +
+ +
+ + +
+ `; + + this.trackClicks(this.element.querySelector("button.share"), this.share); + this.trackClicks(this.element.querySelector("button.report"), this.report); + + /** @type {HTMLElement} */ (this.element.querySelector(".author span")).innerText = + puzzle.meta.author; + } + + initialize() {} + + share() { + const mode = /** @type {PuzzlePlayGameMode} */ (this.root.gameMode); + mode.sharePuzzle(); + } + + report() { + const mode = /** @type {PuzzlePlayGameMode} */ (this.root.gameMode); + mode.reportPuzzle(); + } +} diff --git a/src/js/game/hud/parts/puzzle_play_settings.js b/src/js/game/hud/parts/puzzle_play_settings.js new file mode 100644 index 00000000..db03838b --- /dev/null +++ b/src/js/game/hud/parts/puzzle_play_settings.js @@ -0,0 +1,56 @@ +import { createLogger } from "../../../core/logging"; +import { makeDiv } from "../../../core/utils"; +import { T } from "../../../translations"; +import { StaticMapEntityComponent } from "../../components/static_map_entity"; +import { BaseHUDPart } from "../base_hud_part"; + +const logger = createLogger("puzzle-play"); + +export class HUDPuzzlePlaySettings extends BaseHUDPart { + createElements(parent) { + this.element = makeDiv(parent, "ingame_HUD_PuzzlePlaySettings"); + + if (this.root.gameMode.getBuildableZones()) { + const bind = (selector, handler) => + this.trackClicks(this.element.querySelector(selector), handler); + makeDiv( + this.element, + null, + ["section"], + ` + + + + ` + ); + + bind("button.clearItems", this.clearItems); + bind("button.resetPuzzle", this.resetPuzzle); + } + } + + clearItems() { + this.root.logic.clearAllBeltsAndItems(); + } + + resetPuzzle() { + for (const entity of this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) { + const staticComp = entity.components.StaticMapEntity; + const goalComp = entity.components.GoalAcceptor; + + if (goalComp) { + goalComp.clear(); + } + + if (staticComp.getMetaBuilding().getIsRemovable(this.root)) { + this.root.map.removeStaticEntity(entity); + this.root.entityMgr.destroyEntity(entity); + } + } + this.root.entityMgr.processDestroyList(); + } + + initialize() { + this.visible = true; + } +} diff --git a/src/js/game/hud/parts/sandbox_controller.js b/src/js/game/hud/parts/sandbox_controller.js index 592487ee..3689fa36 100644 --- a/src/js/game/hud/parts/sandbox_controller.js +++ b/src/js/game/hud/parts/sandbox_controller.js @@ -1,3 +1,4 @@ +import { queryParamOptions } from "../../../core/query_parameters"; import { makeDiv } from "../../../core/utils"; import { BaseHUDPart } from "../base_hud_part"; import { DynamicDomAttach } from "../dynamic_dom_attach"; @@ -19,25 +20,25 @@ export class HUDSandboxController extends BaseHUDPart { - +
- +
- +
- +
@@ -117,7 +118,9 @@ export class HUDSandboxController extends BaseHUDPart { // Clear all shapes of this level hubGoals.storedShapes[hubGoals.currentGoal.definition.getHash()] = 0; - this.root.hud.parts.pinnedShapes.rerenderFull(); + if (this.root.hud.parts.pinnedShapes) { + this.root.hud.parts.pinnedShapes.rerenderFull(); + } // Compute gained rewards hubGoals.gainedRewards = {}; @@ -144,7 +147,7 @@ export class HUDSandboxController extends BaseHUDPart { } }); - this.visible = !G_IS_DEV; + this.visible = false; this.domAttach = new DynamicDomAttach(this.root, this.element); } diff --git a/src/js/game/hud/parts/settings_menu.js b/src/js/game/hud/parts/settings_menu.js index eb902934..16da0440 100644 --- a/src/js/game/hud/parts/settings_menu.js +++ b/src/js/game/hud/parts/settings_menu.js @@ -13,17 +13,19 @@ export class HUDSettingsMenu extends BaseHUDPart { this.menuElement = makeDiv(this.background, null, ["menuElement"]); - this.statsElement = makeDiv( - this.background, - null, - ["statsElement"], - ` + if (this.root.gameMode.hasHub()) { + this.statsElement = makeDiv( + this.background, + null, + ["statsElement"], + ` ${T.ingame.settingsMenu.beltsPlaced} ${T.ingame.settingsMenu.buildingsPlaced} ${T.ingame.settingsMenu.playtime} ` - ); + ); + } this.buttonContainer = makeDiv(this.menuElement, null, ["buttons"]); @@ -94,23 +96,25 @@ export class HUDSettingsMenu extends BaseHUDPart { const totalMinutesPlayed = Math.ceil(this.root.time.now() / 60); - /** @type {HTMLElement} */ - const playtimeElement = this.statsElement.querySelector(".playtime"); - /** @type {HTMLElement} */ - const buildingsPlacedElement = this.statsElement.querySelector(".buildingsPlaced"); - /** @type {HTMLElement} */ - const beltsPlacedElement = this.statsElement.querySelector(".beltsPlaced"); + if (this.root.gameMode.hasHub()) { + /** @type {HTMLElement} */ + const playtimeElement = this.statsElement.querySelector(".playtime"); + /** @type {HTMLElement} */ + const buildingsPlacedElement = this.statsElement.querySelector(".buildingsPlaced"); + /** @type {HTMLElement} */ + const beltsPlacedElement = this.statsElement.querySelector(".beltsPlaced"); - playtimeElement.innerText = T.global.time.xMinutes.replace("", `${totalMinutesPlayed}`); + playtimeElement.innerText = T.global.time.xMinutes.replace("", `${totalMinutesPlayed}`); - buildingsPlacedElement.innerText = formatBigNumberFull( - this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent).length - + buildingsPlacedElement.innerText = formatBigNumberFull( + this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent).length - + this.root.entityMgr.getAllWithComponent(BeltComponent).length + ); + + beltsPlacedElement.innerText = formatBigNumberFull( this.root.entityMgr.getAllWithComponent(BeltComponent).length - ); - - beltsPlacedElement.innerText = formatBigNumberFull( - this.root.entityMgr.getAllWithComponent(BeltComponent).length - ); + ); + } } close() { diff --git a/src/js/game/hud/parts/shape_tooltip.js b/src/js/game/hud/parts/shape_tooltip.js new file mode 100644 index 00000000..aabe7fa1 --- /dev/null +++ b/src/js/game/hud/parts/shape_tooltip.js @@ -0,0 +1,100 @@ +import { DrawParameters } from "../../../core/draw_parameters"; +import { enumDirectionToVector, Vector } from "../../../core/vector"; +import { Entity } from "../../entity"; +import { KEYMAPPINGS } from "../../key_action_mapper"; +import { THEME } from "../../theme"; +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDShapeTooltip extends BaseHUDPart { + createElements(parent) {} + + initialize() { + /** @type {Vector} */ + this.currentTile = new Vector(0, 0); + + /** @type {Entity} */ + this.currentEntity = null; + + this.isPlacingBuilding = false; + + this.root.signals.entityQueuedForDestroy.add(() => { + this.currentEntity = null; + }, this); + + this.root.hud.signals.selectedPlacementBuildingChanged.add(metaBuilding => { + this.isPlacingBuilding = metaBuilding; + }, this); + } + + isActive() { + const hudParts = this.root.hud.parts; + + const active = + this.root.app.settings.getSetting("shapeTooltipAlwaysOn") || + this.root.keyMapper.getBinding(KEYMAPPINGS.ingame.showShapeTooltip).pressed; + + // return false if any other placer is active + return ( + active && + !this.isPlacingBuilding && + !hudParts.massSelector.currentSelectionStartWorld && + hudParts.massSelector.selectedUids.size < 1 && + !hudParts.blueprintPlacer.currentBlueprint.get() + ); + } + + /** + * + * @param {DrawParameters} parameters + */ + draw(parameters) { + if (this.isActive()) { + const mousePos = this.root.app.mousePosition; + + if (mousePos) { + const tile = this.root.camera.screenToWorld(mousePos.copy()).toTileSpace(); + if (!tile.equals(this.currentTile)) { + this.currentTile = tile; + + const entity = this.root.map.getLayerContentXY(tile.x, tile.y, this.root.currentLayer); + + if (entity && entity.components.ItemProcessor && entity.components.ItemEjector) { + this.currentEntity = entity; + } else { + this.currentEntity = null; + } + } + } + + if (!this.currentEntity) { + return; + } + + const ejectorComp = this.currentEntity.components.ItemEjector; + const staticComp = this.currentEntity.components.StaticMapEntity; + + const bounds = staticComp.getTileSize(); + const totalArea = bounds.x * bounds.y; + const maxSlots = totalArea < 2 ? 1 : 1e10; + + let slotsDrawn = 0; + + for (let i = 0; i < ejectorComp.slots.length; ++i) { + const slot = ejectorComp.slots[i]; + + if (!slot.lastItem) { + continue; + } + + if (++slotsDrawn > maxSlots) { + continue; + } + + /** @type {Vector} */ + const drawPos = staticComp.localTileToWorld(slot.pos).toWorldSpaceCenterOfTile(); + + slot.lastItem.drawItemCenteredClipped(drawPos.x, drawPos.y, parameters, 25); + } + } + } +} diff --git a/src/js/game/hud/parts/shop.js b/src/js/game/hud/parts/shop.js index 96521898..4b353bd3 100644 --- a/src/js/game/hud/parts/shop.js +++ b/src/js/game/hud/parts/shop.js @@ -77,7 +77,9 @@ export class HUDShop extends BaseHUDPart { const requiredHandle = handle.requireIndexToElement[i]; requiredHandle.container.remove(); requiredHandle.pinDetector.cleanup(); - requiredHandle.infoDetector.cleanup(); + if (requiredHandle.infoDetector) { + requiredHandle.infoDetector.cleanup(); + } } // Cleanup @@ -119,9 +121,19 @@ export class HUDShop extends BaseHUDPart { pinButton.classList.add("pin"); container.appendChild(pinButton); - const viewInfoButton = document.createElement("button"); - viewInfoButton.classList.add("showInfo"); - container.appendChild(viewInfoButton); + let infoDetector; + if (!G_WEGAME_VERSION) { + const viewInfoButton = document.createElement("button"); + viewInfoButton.classList.add("showInfo"); + container.appendChild(viewInfoButton); + infoDetector = new ClickDetector(viewInfoButton, { + consumeEvents: true, + preventDefault: true, + }); + infoDetector.click.add(() => + this.root.hud.signals.viewShapeDetailsRequested.dispatch(shapeDef) + ); + } const currentGoalShape = this.root.hubGoals.currentGoal.definition.getHash(); if (shape === currentGoalShape) { @@ -146,14 +158,6 @@ export class HUDShop extends BaseHUDPart { } }); - const infoDetector = new ClickDetector(viewInfoButton, { - consumeEvents: true, - preventDefault: true, - }); - infoDetector.click.add(() => - this.root.hud.signals.viewShapeDetailsRequested.dispatch(shapeDef) - ); - handle.requireIndexToElement.push({ container, progressLabel, @@ -211,7 +215,9 @@ export class HUDShop extends BaseHUDPart { const requiredHandle = handle.requireIndexToElement[i]; requiredHandle.container.remove(); requiredHandle.pinDetector.cleanup(); - requiredHandle.infoDetector.cleanup(); + if (requiredHandle.infoDetector) { + requiredHandle.infoDetector.cleanup(); + } } handle.requireIndexToElement = []; } diff --git a/src/js/game/hud/parts/standalone_advantages.js b/src/js/game/hud/parts/standalone_advantages.js index 4e39e005..b01461af 100644 --- a/src/js/game/hud/parts/standalone_advantages.js +++ b/src/js/game/hud/parts/standalone_advantages.js @@ -5,7 +5,7 @@ import { T } from "../../../translations"; import { BaseHUDPart } from "../base_hud_part"; import { DynamicDomAttach } from "../dynamic_dom_attach"; -const showIntervalSeconds = 30 * 60; +const showIntervalSeconds = 9 * 60; export class HUDStandaloneAdvantages extends BaseHUDPart { createElements(parent) { @@ -25,7 +25,7 @@ export class HUDStandaloneAdvantages extends BaseHUDPart { ([key, trans]) => `
${trans.title} -

${trans.desc}

+

${trans.desc}

` ) .join("")} @@ -42,7 +42,7 @@ export class HUDStandaloneAdvantages extends BaseHUDPart { this.trackClicks(this.contentDiv.querySelector("button.steamLinkButton"), () => { this.root.app.analytics.trackUiClick("standalone_advantage_visit_steam"); this.root.app.platformWrapper.openExternalLink( - THIRDPARTY_URLS.standaloneStorePage + "?ref=savs&prc=" + A_B_TESTING_LINK_TYPE + THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_std_advg" ); this.close(); }); @@ -60,7 +60,7 @@ export class HUDStandaloneAdvantages extends BaseHUDPart { this.inputReciever = new InputReceiver("standalone-advantages"); this.close(); - this.lastShown = this.root.gameIsFresh ? this.root.time.now() : 0; + this.lastShown = -1e10; } show() { diff --git a/src/js/game/hud/parts/statistics.js b/src/js/game/hud/parts/statistics.js index a28ed288..015e48b6 100644 --- a/src/js/game/hud/parts/statistics.js +++ b/src/js/game/hud/parts/statistics.js @@ -209,7 +209,9 @@ export class HUDStatistics extends BaseHUDPart { } case enumAnalyticsDataSource.produced: case enumAnalyticsDataSource.delivered: { - entries = Object.entries(this.root.productionAnalytics.getCurrentShapeRates(this.dataSource)); + entries = Object.entries( + this.root.productionAnalytics.getCurrentShapeRatesRaw(this.dataSource) + ); break; } } diff --git a/src/js/game/hud/parts/statistics_handle.js b/src/js/game/hud/parts/statistics_handle.js index a64a5f5b..71181c81 100644 --- a/src/js/game/hud/parts/statistics_handle.js +++ b/src/js/game/hud/parts/statistics_handle.js @@ -100,7 +100,7 @@ export class HUDShapeStatisticsHandle { case enumAnalyticsDataSource.delivered: case enumAnalyticsDataSource.produced: { let rate = - this.root.productionAnalytics.getCurrentShapeRate(dataSource, this.definition) / + this.root.productionAnalytics.getCurrentShapeRateRaw(dataSource, this.definition) / globalConfig.analyticsSliceDurationSeconds; this.counter.innerText = T.ingame.statistics.shapesDisplayUnits[unit].replace( diff --git a/src/js/game/hud/parts/watermark.js b/src/js/game/hud/parts/watermark.js index 4a75ea76..837eaa9c 100644 --- a/src/js/game/hud/parts/watermark.js +++ b/src/js/game/hud/parts/watermark.js @@ -27,7 +27,9 @@ export class HUDWatermark extends BaseHUDPart { ); this.trackClicks(this.linkElement, () => { this.root.app.analytics.trackUiClick("watermark_click_2_direct"); - this.root.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?ref=wtmd"); + this.root.app.platformWrapper.openExternalLink( + THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_watermark" + ); }); } diff --git a/src/js/game/hud/parts/waypoints.js b/src/js/game/hud/parts/waypoints.js index a6f37b93..f973a925 100644 --- a/src/js/game/hud/parts/waypoints.js +++ b/src/js/game/hud/parts/waypoints.js @@ -1,6 +1,7 @@ import { makeOffscreenBuffer } from "../../../core/buffer_utils"; import { globalConfig, THIRDPARTY_URLS } from "../../../core/config"; import { DrawParameters } from "../../../core/draw_parameters"; +import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { Loader } from "../../../core/loader"; import { DialogWithForm } from "../../../core/modal_dialog_elements"; import { FormElementInput } from "../../../core/modal_dialog_forms"; @@ -14,8 +15,10 @@ import { removeAllChildren, } from "../../../core/utils"; import { Vector } from "../../../core/vector"; +import { ACHIEVEMENTS } from "../../../platform/achievement_provider"; import { T } from "../../../translations"; import { BaseItem } from "../../base_item"; +import { MetaHubBuilding } from "../../buildings/hub"; import { enumMouseButton } from "../../camera"; import { KEYMAPPINGS } from "../../key_action_mapper"; import { ShapeDefinition } from "../../shape_definition"; @@ -26,7 +29,8 @@ import { enumNotificationType } from "./notifications"; /** @typedef {{ * label: string | null, * center: { x: number, y: number }, - * zoomLevel: number + * zoomLevel: number, + * layer: Layer, * }} Waypoint */ /** @@ -41,7 +45,7 @@ export class HUDWaypoints extends BaseHUDPart { */ createElements(parent) { // Create the helper box on the lower right when zooming out - if (this.root.app.settings.getAllSettings().offerHints) { + if (this.root.app.settings.getAllSettings().offerHints && !G_WEGAME_VERSION) { this.hintElement = makeDiv( parent, "ingame_HUD_Waypoints_Hint", @@ -88,18 +92,22 @@ export class HUDWaypoints extends BaseHUDPart { */ initialize() { // Cache the sprite for the waypoints - this.waypointSprite = Loader.getSprite("sprites/misc/waypoint.png"); + + this.waypointSprites = { + regular: Loader.getSprite("sprites/misc/waypoint.png"), + wires: Loader.getSprite("sprites/misc/waypoint_wires.png"), + }; + this.directionIndicatorSprite = Loader.getSprite("sprites/misc/hub_direction_indicator.png"); - /** @type {Array} - */ - this.waypoints = [ - { - label: null, - center: { x: 0, y: 0 }, - zoomLevel: 3, - }, - ]; + /** @type {Array} */ + this.waypoints = []; + this.waypoints.push({ + label: null, + center: { x: 0, y: 0 }, + zoomLevel: 3, + layer: gMetaBuildingRegistry.findByClass(MetaHubBuilding).getLayer(), + }); // Create a buffer we can use to measure text this.dummyBuffer = makeOffscreenBuffer(1, 1, { @@ -113,10 +121,12 @@ export class HUDWaypoints extends BaseHUDPart { } // Catch mouse and key events - this.root.camera.downPreHandler.add(this.onMouseDown, this); - this.root.keyMapper - .getBinding(KEYMAPPINGS.navigation.createMarker) - .add(() => this.requestSaveMarker({})); + if (!G_WEGAME_VERSION) { + this.root.camera.downPreHandler.add(this.onMouseDown, this); + this.root.keyMapper + .getBinding(KEYMAPPINGS.navigation.createMarker) + .add(() => this.requestSaveMarker({})); + } /** * Stores at how much opacity the markers should be rendered on the map. @@ -187,7 +197,10 @@ export class HUDWaypoints extends BaseHUDPart { const waypoint = this.waypoints[i]; const label = this.getWaypointLabel(waypoint); - const element = makeDiv(this.waypointsListElement, null, ["waypoint"]); + const element = makeDiv(this.waypointsListElement, null, [ + "waypoint", + "layer--" + waypoint.layer, + ]); if (ShapeDefinition.isValidShortKey(label)) { const canvas = this.getWaypointCanvas(waypoint); @@ -228,6 +241,7 @@ export class HUDWaypoints extends BaseHUDPart { * @param {Waypoint} waypoint */ moveToWaypoint(waypoint) { + this.root.currentLayer = waypoint.layer; this.root.camera.setDesiredCenter(new Vector(waypoint.center.x, waypoint.center.y)); this.root.camera.setDesiredZoom(waypoint.zoomLevel); } @@ -326,6 +340,7 @@ export class HUDWaypoints extends BaseHUDPart { label, center: { x: position.x, y: position.y }, zoomLevel: this.root.camera.zoomLevel, + layer: this.root.currentLayer, }); this.sortWaypoints(); @@ -335,6 +350,10 @@ export class HUDWaypoints extends BaseHUDPart { T.ingame.waypoints.creationSuccessNotification, enumNotificationType.success ); + this.root.signals.achievementCheck.dispatch( + ACHIEVEMENTS.mapMarkers15, + this.waypoints.length - 1 // Disregard HUB + ); // Re-render the list and thus add it this.rerenderWaypointList(); @@ -537,7 +556,7 @@ export class HUDWaypoints extends BaseHUDPart { const iconOpacity = 1 - this.currentCompassOpacity; if (iconOpacity > 0.01) { context.globalAlpha = iconOpacity; - this.waypointSprite.drawCentered(context, dims / 2, dims / 2, dims * 0.7); + this.waypointSprites.regular.drawCentered(context, dims / 2, dims / 2, dims * 0.7); context.globalAlpha = 1; } } @@ -616,11 +635,11 @@ export class HUDWaypoints extends BaseHUDPart { } // Render the small icon on the left - this.waypointSprite.drawCentered( + this.waypointSprites[waypoint.layer].drawCentered( parameters.context, bounds.x + contentPaddingX, bounds.y + bounds.h / 2, - bounds.h * 0.7 + bounds.h * 0.6 ); } diff --git a/src/js/game/hud/parts/wires_overlay.js b/src/js/game/hud/parts/wires_overlay.js index 752d9cb3..328d6689 100644 --- a/src/js/game/hud/parts/wires_overlay.js +++ b/src/js/game/hud/parts/wires_overlay.js @@ -28,6 +28,9 @@ export class HUDWiresOverlay extends BaseHUDPart { * Switches between layers */ switchLayers() { + if (!this.root.gameMode.getSupportsWires()) { + return; + } if (this.root.currentLayer === "regular") { if ( this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers) || @@ -117,7 +120,8 @@ export class HUDWiresOverlay extends BaseHUDPart { return; } - if (!this.cachedPatternBackground) { + const hasTileGrid = !this.root.app.settings.getAllSettings().disableTileGrid; + if (hasTileGrid && !this.cachedPatternBackground) { this.cachedPatternBackground = parameters.context.createPattern(this.tilePatternCanvas, "repeat"); } @@ -132,7 +136,9 @@ export class HUDWiresOverlay extends BaseHUDPart { parameters.context.globalCompositeOperation = "source-over"; parameters.context.scale(scaleFactor, scaleFactor); - parameters.context.fillStyle = this.cachedPatternBackground; + parameters.context.fillStyle = hasTileGrid + ? this.cachedPatternBackground + : "rgba(78, 137, 125, 0.75)"; parameters.context.fillRect( bounds.x / scaleFactor, bounds.y / scaleFactor, diff --git a/src/js/game/key_action_mapper.js b/src/js/game/key_action_mapper.js index 6c45805d..2200e1ac 100644 --- a/src/js/game/key_action_mapper.js +++ b/src/js/game/key_action_mapper.js @@ -11,6 +11,11 @@ function key(str) { return str.toUpperCase().charCodeAt(0); } +const KEYCODE_UP_ARROW = 38; +const KEYCODE_DOWN_ARROW = 40; +const KEYCODE_LEFT_ARROW = 37; +const KEYCODE_RIGHT_ARROW = 39; + export const KEYMAPPINGS = { general: { confirm: { keyCode: 13 }, // enter @@ -27,6 +32,8 @@ export const KEYMAPPINGS = { toggleFPSInfo: { keyCode: 115 }, // F4 switchLayers: { keyCode: key("E") }, + + showShapeTooltip: { keyCode: 18 }, // ALT }, navigation: { @@ -44,6 +51,11 @@ export const KEYMAPPINGS = { }, buildings: { + // Puzzle buildings + constant_producer: { keyCode: key("H") }, + goal_acceptor: { keyCode: key("N") }, + block: { keyCode: key("4") }, + // Primary Toolbar belt: { keyCode: key("1") }, balancer: { keyCode: key("2") }, @@ -81,6 +93,10 @@ export const KEYMAPPINGS = { pipette: { keyCode: key("Q") }, rotateWhilePlacing: { keyCode: key("R") }, rotateInverseModifier: { keyCode: 16 }, // SHIFT + rotateToUp: { keyCode: KEYCODE_UP_ARROW }, + rotateToDown: { keyCode: KEYCODE_DOWN_ARROW }, + rotateToRight: { keyCode: KEYCODE_RIGHT_ARROW }, + rotateToLeft: { keyCode: KEYCODE_LEFT_ARROW }, cycleBuildingVariants: { keyCode: key("T") }, cycleBuildings: { keyCode: 9 }, // TAB switchDirectionLockSide: { keyCode: key("R") }, @@ -94,6 +110,7 @@ export const KEYMAPPINGS = { massSelectSelectMultiLayer: { keyCode: 18 }, // Alt massSelectCopy: { keyCode: key("C") }, massSelectCut: { keyCode: key("X") }, + massSelectClear: { keyCode: key("B") }, confirmMassDelete: { keyCode: 46 }, // DEL pasteLastBlueprint: { keyCode: key("V") }, }, @@ -163,13 +180,13 @@ export function getStringForKeyCode(code) { return "END"; case 36: return "HOME"; - case 37: + case KEYCODE_LEFT_ARROW: return "⬅"; - case 38: + case KEYCODE_UP_ARROW: return "⬆"; - case 39: + case KEYCODE_RIGHT_ARROW: return "➡"; - case 40: + case KEYCODE_DOWN_ARROW: return "⬇"; case 44: return "PRNT"; @@ -254,6 +271,8 @@ export function getStringForKeyCode(code) { return "."; case 191: return "/"; + case 192: + return "`"; case 219: return "["; case 220: @@ -314,6 +333,15 @@ export class Keybinding { this.signal.add(receiver, scope); } + /** + * Adds an event listener + * @param {function() : void} receiver + * @param {object=} scope + */ + addToTop(receiver, scope = null) { + this.signal.addToTop(receiver, scope); + } + /** * @param {Element} elem * @returns {HTMLElement} the created element, or null if the keybindings are not shown diff --git a/src/js/game/logic.js b/src/js/game/logic.js index 7ec7b8ab..79104958 100644 --- a/src/js/game/logic.js +++ b/src/js/game/logic.js @@ -4,6 +4,7 @@ import { STOP_PROPAGATION } from "../core/signal"; import { round2Digits } from "../core/utils"; import { enumDirection, enumDirectionToVector, enumInvertedDirections, Vector } from "../core/vector"; import { getBuildingDataFromCode } from "./building_codes"; +import { Component } from "./component"; import { enumWireVariant } from "./components/wire"; import { Entity } from "./entity"; import { CHUNK_OVERLAY_RES } from "./map_chunk_view"; @@ -79,6 +80,15 @@ export class GameLogic { } // Perform additional placement checks + if (this.root.gameMode.getIsEditor()) { + const toolbar = this.root.hud.parts.buildingsToolbar; + const id = entity.components.StaticMapEntity.getMetaBuilding().getId(); + + if (toolbar.buildingHandles[id].puzzleLocked) { + return false; + } + } + if (this.root.signals.prePlacementCheck.dispatch(entity, offset) === STOP_PROPAGATION) { return false; } @@ -161,13 +171,34 @@ export class GameLogic { return returnValue; } + /** + * Performs a immutable operation, causing no recalculations + * @param {function} operation + */ + performImmutableOperation(operation) { + logger.warn("Running immutable operation ..."); + assert(!this.root.immutableOperationRunning, "Can not run two immutalbe operations twice"); + this.root.immutableOperationRunning = true; + const now = performance.now(); + const returnValue = operation(); + const duration = performance.now() - now; + logger.log("Done in", round2Digits(duration), "ms"); + assert( + this.root.immutableOperationRunning, + "Immutable operation = false while immutable operation was running" + ); + this.root.immutableOperationRunning = false; + this.root.signals.immutableOperationFinished.dispatch(); + return returnValue; + } + /** * Returns whether the given building can get removed * @param {Entity} building */ canDeleteBuilding(building) { const staticComp = building.components.StaticMapEntity; - return staticComp.getMetaBuilding().getIsRemovable(); + return staticComp.getMetaBuilding().getIsRemovable(this.root); } /** @@ -342,8 +373,6 @@ export class GameLogic { return !!overlayMatrix[localPosition.x + localPosition.y * 3]; } - g(tile, edge) {} - /** * Returns the acceptors and ejectors which affect the current tile * @param {Vector} tile @@ -425,4 +454,15 @@ export class GameLogic { } return { ejectors, acceptors }; } + + /** + * Clears all belts and items + */ + clearAllBeltsAndItems() { + for (const entity of this.root.entityMgr.entities) { + for (const component of Object.values(entity.components)) { + /** @type {Component} */ (component).clear(); + } + } + } } diff --git a/src/js/game/map.js b/src/js/game/map.js index a5ec8f21..67df7db3 100644 --- a/src/js/game/map.js +++ b/src/js/game/map.js @@ -3,6 +3,7 @@ import { Vector } from "../core/vector"; import { BasicSerializableObject, types } from "../savegame/serialization"; import { BaseItem } from "./base_item"; import { Entity } from "./entity"; +import { MapChunkAggregate } from "./map_chunk_aggregate"; import { MapChunkView } from "./map_chunk_view"; import { GameRoot } from "./root"; @@ -31,6 +32,11 @@ export class BaseMap extends BasicSerializableObject { * Mapping of 'X|Y' to chunk * @type {Map} */ this.chunksById = new Map(); + + /** + * Mapping of 'X|Y' to chunk aggregate + * @type {Map} */ + this.aggregatesById = new Map(); } /** @@ -55,6 +61,39 @@ export class BaseMap extends BasicSerializableObject { return null; } + /** + * Returns the chunk aggregate containing a given chunk + * @param {number} chunkX + * @param {number} chunkY + */ + getAggregateForChunk(chunkX, chunkY, createIfNotExistent = false) { + const aggX = Math.floor(chunkX / globalConfig.chunkAggregateSize); + const aggY = Math.floor(chunkY / globalConfig.chunkAggregateSize); + return this.getAggregate(aggX, aggY, createIfNotExistent); + } + + /** + * Returns the given chunk aggregate by index + * @param {number} aggX + * @param {number} aggY + */ + getAggregate(aggX, aggY, createIfNotExistent = false) { + const aggIdentifier = aggX + "|" + aggY; + let storedAggregate; + + if ((storedAggregate = this.aggregatesById.get(aggIdentifier))) { + return storedAggregate; + } + + if (createIfNotExistent) { + const instance = new MapChunkAggregate(this.root, aggX, aggY); + this.aggregatesById.set(aggIdentifier, instance); + return instance; + } + + return null; + } + /** * Gets or creates a new chunk if not existent for the given tile * @param {number} tileX diff --git a/src/js/game/map_chunk_aggregate.js b/src/js/game/map_chunk_aggregate.js new file mode 100644 index 00000000..de15362d --- /dev/null +++ b/src/js/game/map_chunk_aggregate.js @@ -0,0 +1,154 @@ +import { globalConfig } from "../core/config"; +import { DrawParameters } from "../core/draw_parameters"; +import { drawSpriteClipped } from "../core/draw_utils"; +import { safeModulo } from "../core/utils"; +import { GameRoot } from "./root"; + +export const CHUNK_OVERLAY_RES = 3; + +export class MapChunkAggregate { + /** + * + * @param {GameRoot} root + * @param {number} x + * @param {number} y + */ + constructor(root, x, y) { + this.root = root; + this.x = x; + this.y = y; + + /** + * Whenever something changes, we increase this number - so we know we need to redraw + */ + this.renderIteration = 0; + this.dirty = false; + /** @type {Array} */ + this.dirtyList = new Array(globalConfig.chunkAggregateSize ** 2).fill(true); + this.markDirty(0, 0); + } + + /** + * Marks this chunk as dirty, rerendering all caches + * @param {number} chunkX + * @param {number} chunkY + */ + markDirty(chunkX, chunkY) { + const relX = safeModulo(chunkX, globalConfig.chunkAggregateSize); + const relY = safeModulo(chunkY, globalConfig.chunkAggregateSize); + this.dirtyList[relY * globalConfig.chunkAggregateSize + relX] = true; + if (this.dirty) { + return; + } + this.dirty = true; + ++this.renderIteration; + this.renderKey = this.x + "/" + this.y + "@" + this.renderIteration; + } + + /** + * + * @param {HTMLCanvasElement} canvas + * @param {CanvasRenderingContext2D} context + * @param {number} w + * @param {number} h + * @param {number} dpi + */ + generateOverlayBuffer(canvas, context, w, h, dpi) { + const prevKey = this.x + "/" + this.y + "@" + (this.renderIteration - 1); + const prevBuffer = this.root.buffers.getForKeyOrNullNoUpdate({ + key: "agg@" + this.root.currentLayer, + subKey: prevKey, + }); + + const overlaySize = globalConfig.mapChunkSize * CHUNK_OVERLAY_RES; + let onlyDirty = false; + if (prevBuffer) { + context.drawImage(prevBuffer, 0, 0); + onlyDirty = true; + } + + for (let x = 0; x < globalConfig.chunkAggregateSize; x++) { + for (let y = 0; y < globalConfig.chunkAggregateSize; y++) { + if (onlyDirty && !this.dirtyList[globalConfig.chunkAggregateSize * y + x]) continue; + this.root.map + .getChunk( + this.x * globalConfig.chunkAggregateSize + x, + this.y * globalConfig.chunkAggregateSize + y, + true + ) + .generateOverlayBuffer( + context, + overlaySize, + overlaySize, + x * overlaySize, + y * overlaySize + ); + } + } + + this.dirty = false; + this.dirtyList.fill(false); + } + + /** + * Overlay + * @param {DrawParameters} parameters + */ + drawOverlay(parameters) { + const aggregateOverlaySize = + globalConfig.mapChunkSize * globalConfig.chunkAggregateSize * CHUNK_OVERLAY_RES; + const sprite = this.root.buffers.getForKey({ + key: "agg@" + this.root.currentLayer, + subKey: this.renderKey, + w: aggregateOverlaySize, + h: aggregateOverlaySize, + dpi: 1, + redrawMethod: this.generateOverlayBuffer.bind(this), + }); + + const dims = globalConfig.mapChunkWorldSize * globalConfig.chunkAggregateSize; + const extrude = 0.05; + + // Draw chunk "pixel" art + parameters.context.imageSmoothingEnabled = false; + drawSpriteClipped({ + parameters, + sprite, + x: this.x * dims - extrude, + y: this.y * dims - extrude, + w: dims + 2 * extrude, + h: dims + 2 * extrude, + originalW: aggregateOverlaySize, + originalH: aggregateOverlaySize, + }); + + parameters.context.imageSmoothingEnabled = true; + const resourcesScale = this.root.app.settings.getAllSettings().mapResourcesScale; + + // Draw patch items + if ( + this.root.currentLayer === "regular" && + resourcesScale > 0.05 && + this.root.camera.zoomLevel > 0.1 + ) { + const diameter = (70 / Math.pow(parameters.zoomLevel, 0.35)) * (0.2 + 2 * resourcesScale); + + for (let x = 0; x < globalConfig.chunkAggregateSize; x++) { + for (let y = 0; y < globalConfig.chunkAggregateSize; y++) { + this.root.map + .getChunk( + this.x * globalConfig.chunkAggregateSize + x, + this.y * globalConfig.chunkAggregateSize + y, + true + ) + .drawOverlayPatches( + parameters, + this.x * dims + x * globalConfig.mapChunkWorldSize, + this.y * dims + y * globalConfig.mapChunkWorldSize, + diameter + ); + } + } + } + } +} diff --git a/src/js/game/map_chunk_view.js b/src/js/game/map_chunk_view.js index 848afbab..947b7a9f 100644 --- a/src/js/game/map_chunk_view.js +++ b/src/js/game/map_chunk_view.js @@ -33,6 +33,7 @@ export class MapChunkView extends MapChunk { markDirty() { ++this.renderIteration; this.renderKey = this.x + "/" + this.y + "@" + this.renderIteration; + this.root.map.getAggregateForChunk(this.x, this.y, true).markDirty(this.x, this.y); } /** @@ -41,7 +42,14 @@ export class MapChunkView extends MapChunk { */ drawBackgroundLayer(parameters) { const systems = this.root.systemMgr.systems; - systems.mapResources.drawChunk(parameters, this); + if (systems.zone) { + systems.zone.drawChunk(parameters, this); + } + + if (this.root.gameMode.hasResources()) { + systems.mapResources.drawChunk(parameters, this); + } + systems.beltUnderlays.drawChunk(parameters, this); systems.belt.drawChunk(parameters, this); } @@ -69,77 +77,47 @@ export class MapChunkView extends MapChunk { systems.lever.drawChunk(parameters, this); systems.display.drawChunk(parameters, this); systems.storage.drawChunk(parameters, this); + systems.constantProducer.drawChunk(parameters, this); + systems.goalAcceptor.drawChunk(parameters, this); systems.itemProcessorOverlays.drawChunk(parameters, this); } /** - * Overlay * @param {DrawParameters} parameters + * @param {number} xoffs + * @param {number} yoffs + * @param {number} diameter */ - drawOverlay(parameters) { - const overlaySize = globalConfig.mapChunkSize * CHUNK_OVERLAY_RES; - const sprite = this.root.buffers.getForKey({ - key: "chunk@" + this.root.currentLayer, - subKey: this.renderKey, - w: overlaySize, - h: overlaySize, - dpi: 1, - redrawMethod: this.generateOverlayBuffer.bind(this), - }); - - const dims = globalConfig.mapChunkWorldSize; - const extrude = 0.05; - - // Draw chunk "pixel" art - parameters.context.imageSmoothingEnabled = false; - drawSpriteClipped({ - parameters, - sprite, - x: this.x * dims - extrude, - y: this.y * dims - extrude, - w: dims + 2 * extrude, - h: dims + 2 * extrude, - originalW: overlaySize, - originalH: overlaySize, - }); - - parameters.context.imageSmoothingEnabled = true; - const resourcesScale = this.root.app.settings.getAllSettings().mapResourcesScale; - - // Draw patch items - if (this.root.currentLayer === "regular" && resourcesScale > 0.05) { - const diameter = (70 / Math.pow(parameters.zoomLevel, 0.35)) * (0.2 + 2 * resourcesScale); - - for (let i = 0; i < this.patches.length; ++i) { - const patch = this.patches[i]; - if (patch.item.getItemType() === "shape") { - const destX = this.x * dims + patch.pos.x * globalConfig.tileSize; - const destY = this.y * dims + patch.pos.y * globalConfig.tileSize; - patch.item.drawItemCenteredClipped(destX, destY, parameters, diameter); - } + drawOverlayPatches(parameters, xoffs, yoffs, diameter) { + for (let i = 0; i < this.patches.length; ++i) { + const patch = this.patches[i]; + if (patch.item.getItemType() === "shape") { + const destX = xoffs + patch.pos.x * globalConfig.tileSize; + const destY = yoffs + patch.pos.y * globalConfig.tileSize; + patch.item.drawItemCenteredClipped(destX, destY, parameters, diameter); } } } /** * - * @param {HTMLCanvasElement} canvas * @param {CanvasRenderingContext2D} context * @param {number} w * @param {number} h - * @param {number} dpi + * @param {number=} xoffs + * @param {number=} yoffs */ - generateOverlayBuffer(canvas, context, w, h, dpi) { + generateOverlayBuffer(context, w, h, xoffs, yoffs) { context.fillStyle = this.containedEntities.length > 0 ? THEME.map.chunkOverview.filled : THEME.map.chunkOverview.empty; - context.fillRect(0, 0, w, h); + context.fillRect(xoffs, yoffs, w, h); if (this.root.app.settings.getAllSettings().displayChunkBorders) { context.fillStyle = THEME.map.chunkBorders; - context.fillRect(0, 0, w, 1); - context.fillRect(0, 1, 1, h); + context.fillRect(xoffs, yoffs, w, 1); + context.fillRect(xoffs, yoffs + 1, 1, h); } for (let x = 0; x < globalConfig.mapChunkSize; ++x) { @@ -165,8 +143,8 @@ export class MapChunkView extends MapChunk { if (lowerContent) { context.fillStyle = lowerContent.getBackgroundColorAsResource(); context.fillRect( - x * CHUNK_OVERLAY_RES, - y * CHUNK_OVERLAY_RES, + xoffs + x * CHUNK_OVERLAY_RES, + yoffs + y * CHUNK_OVERLAY_RES, CHUNK_OVERLAY_RES, CHUNK_OVERLAY_RES ); @@ -181,8 +159,8 @@ export class MapChunkView extends MapChunk { const isFilled = overlayMatrix[dx + dy * 3]; if (isFilled) { context.fillRect( - x * CHUNK_OVERLAY_RES + dx, - y * CHUNK_OVERLAY_RES + dy, + xoffs + x * CHUNK_OVERLAY_RES + dx, + yoffs + y * CHUNK_OVERLAY_RES + dy, 1, 1 ); @@ -197,8 +175,8 @@ export class MapChunkView extends MapChunk { data.rotationVariant ); context.fillRect( - x * CHUNK_OVERLAY_RES, - y * CHUNK_OVERLAY_RES, + xoffs + x * CHUNK_OVERLAY_RES, + yoffs + y * CHUNK_OVERLAY_RES, CHUNK_OVERLAY_RES, CHUNK_OVERLAY_RES ); @@ -211,8 +189,8 @@ export class MapChunkView extends MapChunk { if (lowerContent) { context.fillStyle = lowerContent.getBackgroundColorAsResource(); context.fillRect( - x * CHUNK_OVERLAY_RES, - y * CHUNK_OVERLAY_RES, + xoffs + x * CHUNK_OVERLAY_RES, + yoffs + y * CHUNK_OVERLAY_RES, CHUNK_OVERLAY_RES, CHUNK_OVERLAY_RES ); @@ -224,7 +202,7 @@ export class MapChunkView extends MapChunk { // Draw wires overlay context.fillStyle = THEME.map.wires.overlayColor; - context.fillRect(0, 0, w, h); + context.fillRect(xoffs, yoffs, w, h); for (let x = 0; x < globalConfig.mapChunkSize; ++x) { const wiresArray = this.wireContents[x]; @@ -235,8 +213,8 @@ export class MapChunkView extends MapChunk { } MapChunkView.drawSingleWiresOverviewTile({ context, - x: x * CHUNK_OVERLAY_RES, - y: y * CHUNK_OVERLAY_RES, + x: xoffs + x * CHUNK_OVERLAY_RES, + y: yoffs + y * CHUNK_OVERLAY_RES, entity: content, tileSizePixels: CHUNK_OVERLAY_RES, }); diff --git a/src/js/game/map_view.js b/src/js/game/map_view.js index 296291e9..c6078ea9 100644 --- a/src/js/game/map_view.js +++ b/src/js/game/map_view.js @@ -5,6 +5,7 @@ import { freeCanvas, makeOffscreenBuffer } from "../core/buffer_utils"; import { Entity } from "./entity"; import { THEME } from "./theme"; import { MapChunkView } from "./map_chunk_view"; +import { MapChunkAggregate } from "./map_chunk_aggregate"; /** * This is the view of the map, it extends the map which is the raw model and allows @@ -164,6 +165,40 @@ export class MapView extends BaseMap { } } + /** + * Calls a given method on all given chunks + * @param {DrawParameters} parameters + * @param {function} method + */ + drawVisibleAggregates(parameters, method) { + const cullRange = parameters.visibleRect.allScaled(1 / globalConfig.tileSize); + const top = cullRange.top(); + const right = cullRange.right(); + const bottom = cullRange.bottom(); + const left = cullRange.left(); + + const border = 0; + const minY = top - border; + const maxY = bottom + border; + const minX = left - border; + const maxX = right + border; + + const aggregateTiles = globalConfig.chunkAggregateSize * globalConfig.mapChunkSize; + const aggStartX = Math.floor(minX / aggregateTiles); + const aggStartY = Math.floor(minY / aggregateTiles); + + const aggEndX = Math.floor(maxX / aggregateTiles); + const aggEndY = Math.floor(maxY / aggregateTiles); + + // Render y from top down for proper blending + for (let aggX = aggStartX; aggX <= aggEndX; ++aggX) { + for (let aggY = aggStartY; aggY <= aggEndY; ++aggY) { + const aggregate = this.root.map.getAggregate(aggX, aggY, true); + method.call(aggregate, parameters); + } + } + } + /** * Draws the wires foreground * @param {DrawParameters} parameters @@ -177,7 +212,7 @@ export class MapView extends BaseMap { * @param {DrawParameters} parameters */ drawOverlay(parameters) { - this.drawVisibleChunks(parameters, MapChunkView.prototype.drawOverlay); + this.drawVisibleAggregates(parameters, MapChunkAggregate.prototype.drawOverlay); } /** @@ -186,7 +221,7 @@ export class MapView extends BaseMap { */ drawBackground(parameters) { // Render tile grid - if (!this.root.app.settings.getAllSettings().disableTileGrid) { + if (!this.root.app.settings.getAllSettings().disableTileGrid || !this.root.gameMode.hasResources()) { const dpi = this.backgroundCacheDPI; parameters.context.scale(1 / dpi, 1 / dpi); diff --git a/src/js/game/meta_building.js b/src/js/game/meta_building.js index 9deee272..7bfbce25 100644 --- a/src/js/game/meta_building.js +++ b/src/js/game/meta_building.js @@ -108,9 +108,10 @@ export class MetaBuilding { /** * Returns whether this building is removable + * @param {GameRoot} root * @returns {boolean} */ - getIsRemovable() { + getIsRemovable(root) { return true; } @@ -157,10 +158,9 @@ export class MetaBuilding { /** * Returns whether this building is rotateable - * @param {string} variant * @returns {boolean} */ - getIsRotateable(variant) { + getIsRotateable() { return true; } @@ -242,7 +242,7 @@ export class MetaBuilding { * @return {{ rotation: number, rotationVariant: number, connectedEntities?: Array }} */ computeOptimalDirectionAndRotationVariantAtTile({ root, tile, rotation, variant, layer }) { - if (!this.getIsRotateable(variant)) { + if (!this.getIsRotateable()) { return { rotation: 0, rotationVariant: 0, diff --git a/src/js/game/meta_building_registry.js b/src/js/game/meta_building_registry.js index 0613103e..0c93153d 100644 --- a/src/js/game/meta_building_registry.js +++ b/src/js/game/meta_building_registry.js @@ -4,11 +4,14 @@ import { T } from "../translations"; import { MetaAnalyzerBuilding } from "./buildings/analyzer"; import { enumBalancerVariants, MetaBalancerBuilding } from "./buildings/balancer"; import { MetaBeltBuilding } from "./buildings/belt"; +import { MetaBlockBuilding } from "./buildings/block"; import { MetaComparatorBuilding } from "./buildings/comparator"; +import { MetaConstantProducerBuilding } from "./buildings/constant_producer"; import { MetaConstantSignalBuilding } from "./buildings/constant_signal"; import { enumCutterVariants, MetaCutterBuilding } from "./buildings/cutter"; import { MetaDisplayBuilding } from "./buildings/display"; import { MetaFilterBuilding } from "./buildings/filter"; +import { MetaGoalAcceptorBuilding } from "./buildings/goal_acceptor"; import { MetaHubBuilding } from "./buildings/hub"; import { MetaItemProducerBuilding } from "./buildings/item_producer"; import { MetaLeverBuilding } from "./buildings/lever"; @@ -45,6 +48,7 @@ export function initMetaBuildingRegistry() { gMetaBuildingRegistry.register(MetaStorageBuilding); gMetaBuildingRegistry.register(MetaBeltBuilding); gMetaBuildingRegistry.register(MetaUndergroundBeltBuilding); + gMetaBuildingRegistry.register(MetaGoalAcceptorBuilding); gMetaBuildingRegistry.register(MetaHubBuilding); gMetaBuildingRegistry.register(MetaWireBuilding); gMetaBuildingRegistry.register(MetaConstantSignalBuilding); @@ -59,6 +63,8 @@ export function initMetaBuildingRegistry() { gMetaBuildingRegistry.register(MetaAnalyzerBuilding); gMetaBuildingRegistry.register(MetaComparatorBuilding); gMetaBuildingRegistry.register(MetaItemProducerBuilding); + gMetaBuildingRegistry.register(MetaConstantProducerBuilding); + gMetaBuildingRegistry.register(MetaBlockBuilding); // Belt registerBuildingVariant(1, MetaBeltBuilding, defaultBuildingVariant, 0); @@ -165,6 +171,15 @@ export function initMetaBuildingRegistry() { // Item producer registerBuildingVariant(61, MetaItemProducerBuilding); + // Constant producer + registerBuildingVariant(62, MetaConstantProducerBuilding); + + // Goal acceptor + registerBuildingVariant(63, MetaGoalAcceptorBuilding); + + // Block + registerBuildingVariant(64, MetaBlockBuilding); + // Propagate instances for (const key in gBuildingVariants) { gBuildingVariants[key].metaInstance = gMetaBuildingRegistry.findByClass( diff --git a/src/js/game/modes/puzzle.js b/src/js/game/modes/puzzle.js new file mode 100644 index 00000000..c953b0a6 --- /dev/null +++ b/src/js/game/modes/puzzle.js @@ -0,0 +1,108 @@ +/* typehints:start */ +import { GameRoot } from "../root"; +/* typehints:end */ + +import { Rectangle } from "../../core/rectangle"; +import { types } from "../../savegame/serialization"; +import { enumGameModeTypes, GameMode } from "../game_mode"; +import { HUDPuzzleBackToMenu } from "../hud/parts/puzzle_back_to_menu"; +import { HUDPuzzleDLCLogo } from "../hud/parts/puzzle_dlc_logo"; +import { HUDMassSelector } from "../hud/parts/mass_selector"; + +export class PuzzleGameMode extends GameMode { + static getType() { + return enumGameModeTypes.puzzle; + } + + /** @returns {object} */ + static getSchema() { + return { + zoneHeight: types.uint, + zoneWidth: types.uint, + }; + } + + /** @param {GameRoot} root */ + constructor(root) { + super(root); + + const data = this.getSaveData(); + + this.additionalHudParts = { + puzzleBackToMenu: HUDPuzzleBackToMenu, + puzzleDlcLogo: HUDPuzzleDLCLogo, + massSelector: HUDMassSelector, + }; + + this.zoneWidth = data.zoneWidth || 8; + this.zoneHeight = data.zoneHeight || 6; + } + + /** + * @param {typeof import("../meta_building").MetaBuilding} building + */ + isBuildingExcluded(building) { + return this.hiddenBuildings.indexOf(building) >= 0; + } + + getSaveData() { + const save = this.root.savegame.getCurrentDump(); + if (!save) { + return {}; + } + return save.gameMode.data; + } + + getCameraBounds() { + return Rectangle.centered(this.zoneWidth + 20, this.zoneHeight + 20); + } + + getBuildableZones() { + return [Rectangle.centered(this.zoneWidth, this.zoneHeight)]; + } + + hasHub() { + return false; + } + + hasResources() { + return false; + } + + getMinimumZoom() { + return 1; + } + + getMaximumZoom() { + return 4; + } + + getIsSaveable() { + return false; + } + + getHasFreeCopyPaste() { + return true; + } + + throughputDoesNotMatter() { + return true; + } + + getSupportsWires() { + return false; + } + + getFixedTickrate() { + return 300; + } + + getIsDeterministic() { + return true; + } + + /** @returns {boolean} */ + getIsFreeplayAvailable() { + return true; + } +} diff --git a/src/js/game/modes/puzzle_edit.js b/src/js/game/modes/puzzle_edit.js new file mode 100644 index 00000000..e3d2e40d --- /dev/null +++ b/src/js/game/modes/puzzle_edit.js @@ -0,0 +1,66 @@ +/* typehints:start */ +import { GameRoot } from "../root"; +/* typehints:end */ + +import { enumGameModeIds } from "../game_mode"; +import { PuzzleGameMode } from "./puzzle"; +import { MetaStorageBuilding } from "../buildings/storage"; +import { MetaReaderBuilding } from "../buildings/reader"; +import { MetaFilterBuilding } from "../buildings/filter"; +import { MetaDisplayBuilding } from "../buildings/display"; +import { MetaLeverBuilding } from "../buildings/lever"; +import { MetaItemProducerBuilding } from "../buildings/item_producer"; +import { MetaMinerBuilding } from "../buildings/miner"; +import { MetaWireBuilding } from "../buildings/wire"; +import { MetaWireTunnelBuilding } from "../buildings/wire_tunnel"; +import { MetaConstantSignalBuilding } from "../buildings/constant_signal"; +import { MetaLogicGateBuilding } from "../buildings/logic_gate"; +import { MetaVirtualProcessorBuilding } from "../buildings/virtual_processor"; +import { MetaAnalyzerBuilding } from "../buildings/analyzer"; +import { MetaComparatorBuilding } from "../buildings/comparator"; +import { MetaTransistorBuilding } from "../buildings/transistor"; +import { HUDPuzzleEditorControls } from "../hud/parts/puzzle_editor_controls"; +import { HUDPuzzleEditorReview } from "../hud/parts/puzzle_editor_review"; +import { HUDPuzzleEditorSettings } from "../hud/parts/puzzle_editor_settings"; + +export class PuzzleEditGameMode extends PuzzleGameMode { + static getId() { + return enumGameModeIds.puzzleEdit; + } + + static getSchema() { + return {}; + } + + /** @param {GameRoot} root */ + constructor(root) { + super(root); + + this.hiddenBuildings = [ + MetaStorageBuilding, + MetaReaderBuilding, + MetaFilterBuilding, + MetaDisplayBuilding, + MetaLeverBuilding, + MetaItemProducerBuilding, + MetaMinerBuilding, + + MetaWireBuilding, + MetaWireTunnelBuilding, + MetaConstantSignalBuilding, + MetaLogicGateBuilding, + MetaVirtualProcessorBuilding, + MetaAnalyzerBuilding, + MetaComparatorBuilding, + MetaTransistorBuilding, + ]; + + this.additionalHudParts.puzzleEditorControls = HUDPuzzleEditorControls; + this.additionalHudParts.puzzleEditorReview = HUDPuzzleEditorReview; + this.additionalHudParts.puzzleEditorSettings = HUDPuzzleEditorSettings; + } + + getIsEditor() { + return true; + } +} diff --git a/src/js/game/modes/puzzle_play.js b/src/js/game/modes/puzzle_play.js new file mode 100644 index 00000000..fc9a8f11 --- /dev/null +++ b/src/js/game/modes/puzzle_play.js @@ -0,0 +1,204 @@ +/* typehints:start */ +import { GameRoot } from "../root"; +/* typehints:end */ + +import { enumGameModeIds } from "../game_mode"; +import { PuzzleGameMode } from "./puzzle"; +import { MetaStorageBuilding } from "../buildings/storage"; +import { MetaReaderBuilding } from "../buildings/reader"; +import { MetaFilterBuilding } from "../buildings/filter"; +import { MetaDisplayBuilding } from "../buildings/display"; +import { MetaLeverBuilding } from "../buildings/lever"; +import { MetaItemProducerBuilding } from "../buildings/item_producer"; +import { MetaMinerBuilding } from "../buildings/miner"; +import { MetaWireBuilding } from "../buildings/wire"; +import { MetaWireTunnelBuilding } from "../buildings/wire_tunnel"; +import { MetaConstantSignalBuilding } from "../buildings/constant_signal"; +import { MetaLogicGateBuilding } from "../buildings/logic_gate"; +import { MetaVirtualProcessorBuilding } from "../buildings/virtual_processor"; +import { MetaAnalyzerBuilding } from "../buildings/analyzer"; +import { MetaComparatorBuilding } from "../buildings/comparator"; +import { MetaTransistorBuilding } from "../buildings/transistor"; +import { MetaConstantProducerBuilding } from "../buildings/constant_producer"; +import { MetaGoalAcceptorBuilding } from "../buildings/goal_acceptor"; +import { PuzzleSerializer } from "../../savegame/puzzle_serializer"; +import { T } from "../../translations"; +import { HUDPuzzlePlayMetadata } from "../hud/parts/puzzle_play_metadata"; +import { createLogger } from "../../core/logging"; +import { HUDPuzzleCompleteNotification } from "../hud/parts/puzzle_complete_notification"; +import { HUDPuzzlePlaySettings } from "../hud/parts/puzzle_play_settings"; +import { MetaBlockBuilding } from "../buildings/block"; +import { MetaBuilding } from "../meta_building"; +import { gMetaBuildingRegistry } from "../../core/global_registries"; +import { HUDPuzzleNextPuzzle } from "../hud/parts/HUDPuzzleNextPuzzle"; + +const logger = createLogger("puzzle-play"); +const copy = require("clipboard-copy"); + +export class PuzzlePlayGameMode extends PuzzleGameMode { + static getId() { + return enumGameModeIds.puzzlePlay; + } + + /** + * @param {GameRoot} root + * @param {object} payload + * @param {import("../../savegame/savegame_typedefs").PuzzleFullData} payload.puzzle + * @param {Array | undefined} payload.nextPuzzles + */ + constructor(root, { puzzle, nextPuzzles }) { + super(root); + + /** @type {Array} */ + let excludedBuildings = [ + MetaConstantProducerBuilding, + MetaGoalAcceptorBuilding, + MetaBlockBuilding, + + MetaStorageBuilding, + MetaReaderBuilding, + MetaFilterBuilding, + MetaDisplayBuilding, + MetaLeverBuilding, + MetaItemProducerBuilding, + MetaMinerBuilding, + + MetaWireBuilding, + MetaWireTunnelBuilding, + MetaConstantSignalBuilding, + MetaLogicGateBuilding, + MetaVirtualProcessorBuilding, + MetaAnalyzerBuilding, + MetaComparatorBuilding, + MetaTransistorBuilding, + ]; + + if (puzzle.game.excludedBuildings) { + /** + * @type {any} + */ + const puzzleHidden = puzzle.game.excludedBuildings + .map(id => { + if (!gMetaBuildingRegistry.hasId(id)) { + return; + } + return gMetaBuildingRegistry.findById(id).constructor; + }) + .filter(x => !!x); + excludedBuildings = excludedBuildings.concat(puzzleHidden); + } + + this.hiddenBuildings = excludedBuildings; + + this.additionalHudParts.puzzlePlayMetadata = HUDPuzzlePlayMetadata; + this.additionalHudParts.puzzlePlaySettings = HUDPuzzlePlaySettings; + this.additionalHudParts.puzzleCompleteNotification = HUDPuzzleCompleteNotification; + + root.signals.postLoadHook.add(this.loadPuzzle, this); + + this.puzzle = puzzle; + + /** + * @type {Array} + */ + this.nextPuzzles = nextPuzzles || []; + + if (this.nextPuzzles.length > 0) { + this.additionalHudParts.puzzleNext = HUDPuzzleNextPuzzle; + } + } + + loadPuzzle() { + let errorText; + logger.log("Loading puzzle", this.puzzle); + + try { + this.zoneWidth = this.puzzle.game.bounds.w; + this.zoneHeight = this.puzzle.game.bounds.h; + errorText = new PuzzleSerializer().deserializePuzzle(this.root, this.puzzle.game); + } catch (ex) { + errorText = ex.message || ex; + } + + if (errorText) { + this.root.gameState.moveToState("PuzzleMenuState", { + error: { + title: T.dialogs.puzzleLoadError.title, + desc: T.dialogs.puzzleLoadError.desc + " " + errorText, + }, + }); + // const signals = this.root.hud.parts.dialogs.showWarning( + // T.dialogs.puzzleLoadError.title, + // T.dialogs.puzzleLoadError.desc + " " + errorText + // ); + // signals.ok.add(() => this.root.gameState.moveToState("PuzzleMenuState")); + } + } + + /** + * + * @param {boolean} liked + * @param {number} time + */ + trackCompleted(liked, time) { + const closeLoading = this.root.hud.parts.dialogs.showLoadingDialog(); + + return this.root.app.clientApi + .apiCompletePuzzle(this.puzzle.meta.id, { + time, + liked, + }) + .catch(err => { + logger.warn("Failed to complete puzzle:", err); + }) + .then(() => { + closeLoading(); + }); + } + + sharePuzzle() { + copy(this.puzzle.meta.shortKey); + + this.root.hud.parts.dialogs.showInfo( + T.dialogs.puzzleShare.title, + T.dialogs.puzzleShare.desc.replace("", this.puzzle.meta.shortKey) + ); + } + + reportPuzzle() { + const { optionSelected } = this.root.hud.parts.dialogs.showOptionChooser( + T.dialogs.puzzleReport.title, + { + options: [ + { value: "profane", text: T.dialogs.puzzleReport.options.profane }, + { value: "unsolvable", text: T.dialogs.puzzleReport.options.unsolvable }, + { value: "trolling", text: T.dialogs.puzzleReport.options.trolling }, + ], + } + ); + + return new Promise(resolve => { + optionSelected.add(option => { + const closeLoading = this.root.hud.parts.dialogs.showLoadingDialog(); + + this.root.app.clientApi.apiReportPuzzle(this.puzzle.meta.id, option).then( + () => { + closeLoading(); + const { ok } = this.root.hud.parts.dialogs.showInfo( + T.dialogs.puzzleReportComplete.title, + T.dialogs.puzzleReportComplete.desc + ); + ok.add(resolve); + }, + err => { + closeLoading(); + const { ok } = this.root.hud.parts.dialogs.showInfo( + T.dialogs.puzzleReportError.title, + T.dialogs.puzzleReportError.desc + " " + err + ); + } + ); + }); + }); + } +} diff --git a/src/js/game/modes/regular.js b/src/js/game/modes/regular.js index e99f4a7c..429c1515 100644 --- a/src/js/game/modes/regular.js +++ b/src/js/game/modes/regular.js @@ -1,19 +1,76 @@ +/* typehints:start */ +import { GameRoot } from "../root"; +import { MetaBuilding } from "../meta_building"; +/* typehints:end */ + import { findNiceIntegerValue } from "../../core/utils"; -import { GameMode } from "../game_mode"; +import { MetaConstantProducerBuilding } from "../buildings/constant_producer"; +import { MetaGoalAcceptorBuilding } from "../buildings/goal_acceptor"; +import { enumGameModeIds, enumGameModeTypes, GameMode } from "../game_mode"; import { ShapeDefinition } from "../shape_definition"; import { enumHubGoalRewards } from "../tutorial_goals"; +import { HUDWiresToolbar } from "../hud/parts/wires_toolbar"; +import { HUDUnlockNotification } from "../hud/parts/unlock_notification"; +import { HUDMassSelector } from "../hud/parts/mass_selector"; +import { HUDShop } from "../hud/parts/shop"; +import { HUDWaypoints } from "../hud/parts/waypoints"; +import { HUDStatistics } from "../hud/parts/statistics"; +import { HUDWireInfo } from "../hud/parts/wire_info"; +import { HUDLeverToggle } from "../hud/parts/lever_toggle"; +import { HUDPinnedShapes } from "../hud/parts/pinned_shapes"; +import { HUDNotifications } from "../hud/parts/notifications"; +import { HUDScreenshotExporter } from "../hud/parts/screenshot_exporter"; +import { HUDWiresOverlay } from "../hud/parts/wires_overlay"; +import { HUDShapeViewer } from "../hud/parts/shape_viewer"; +import { HUDLayerPreview } from "../hud/parts/layer_preview"; +import { HUDTutorialVideoOffer } from "../hud/parts/tutorial_video_offer"; +import { HUDMinerHighlight } from "../hud/parts/miner_highlight"; +import { HUDGameMenu } from "../hud/parts/game_menu"; +import { HUDConstantSignalEdit } from "../hud/parts/constant_signal_edit"; +import { IS_MOBILE } from "../../core/config"; +import { HUDKeybindingOverlay } from "../hud/parts/keybinding_overlay"; +import { HUDWatermark } from "../hud/parts/watermark"; +import { HUDStandaloneAdvantages } from "../hud/parts/standalone_advantages"; +import { HUDCatMemes } from "../hud/parts/cat_memes"; +import { HUDPartTutorialHints } from "../hud/parts/tutorial_hints"; +import { HUDInteractiveTutorial } from "../hud/parts/interactive_tutorial"; +import { HUDSandboxController } from "../hud/parts/sandbox_controller"; +import { queryParamOptions } from "../../core/query_parameters"; +import { MetaBlockBuilding } from "../buildings/block"; +import { MetaItemProducerBuilding } from "../buildings/item_producer"; -const rocketShape = "CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw"; -const finalGameShape = "RuCw--Cw:----Ru--"; +/** @typedef {{ + * shape: string, + * amount: number + * }} UpgradeRequirement */ + +/** @typedef {{ + * required: Array + * improvement?: number, + * excludePrevious?: boolean + * }} TierRequirement */ + +/** @typedef {Array} UpgradeTiers */ + +/** @typedef {{ + * shape: string, + * required: number, + * reward: enumHubGoalRewards, + * throughputOnly?: boolean + * }} LevelDefinition */ + +export const rocketShape = "CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw"; +export const finalGameShape = "RuCw--Cw:----Ru--"; const preparementShape = "CpRpCp--:SwSwSwSw"; -const blueprintShape = "CbCbCbRb:CwCwCwCw"; // Tiers need % of the previous tier as requirement too const tierGrowth = 2.5; +const chinaShapes = G_WEGAME_VERSION || G_CHINA_VERSION; + /** * Generates all upgrades - * @returns {Object} */ + * @returns {Object} */ function generateUpgrades(limitedVersion = false) { const fixedImprovements = [0.5, 0.5, 1, 1, 2, 1, 1]; const numEndgameUpgrades = limitedVersion ? 0 : 1000 - fixedImprovements.length - 1; @@ -87,7 +144,14 @@ function generateUpgrades(limitedVersion = false) { required: [{ shape: "CwCwCwCw:WbWbWbWb", amount: 23000 }], }, { - required: [{ shape: "CbRbRbCb:CwCwCwCw:WbWbWbWb", amount: 50000 }], + required: [ + { + shape: chinaShapes + ? "CyCyCyCy:CyCyCyCy:RyRyRyRy:RuRuRuRu" + : "CbRbRbCb:CwCwCwCw:WbWbWbWb", + amount: 50000, + }, + ], }, { required: [{ shape: preparementShape, amount: 25000 }], @@ -141,7 +205,12 @@ function generateUpgrades(limitedVersion = false) { required: [{ shape: "WrWrWrWr", amount: 3800 }], }, { - required: [{ shape: "RpRpRpRp:CwCwCwCw", amount: 6500 }], + required: [ + { + shape: chinaShapes ? "CuCuCuCu:CwCwCwCw:Sb--Sr--" : "RpRpRpRp:CwCwCwCw", + amount: 6500, + }, + ], }, { required: [{ shape: "WpWpWpWp:CwCwCwCw:WpWpWpWp", amount: 25000 }], @@ -273,63 +342,63 @@ export function generateLevelDefinitions(limitedVersion = false) { reward: enumHubGoalRewards.reward_rotater_ccw, }, - // 8 - { - shape: "RbRb----", // painter t2 - required: 480, - reward: enumHubGoalRewards.reward_mixer, - }, - - // 9 - // Mixing (purple) - { - shape: "CpCpCpCp", // belts t3 - required: 600, - reward: enumHubGoalRewards.reward_merger, - }, - - // 10 - // STACKER: Star shape + cyan - { - shape: "ScScScSc", // miners t3 - required: 800, - reward: enumHubGoalRewards.reward_stacker, - }, - - // 11 - // Chainable miner - { - shape: "CgScScCg", // processors t3 - required: 1000, - reward: enumHubGoalRewards.reward_miner_chainable, - }, - - // 12 - // Blueprints - { - shape: "CbCbCbRb:CwCwCwCw", - required: 1000, - reward: enumHubGoalRewards.reward_blueprints, - }, - - // 13 - // Tunnel Tier 2 - { - shape: "RpRpRpRp:CwCwCwCw", // painting t3 - required: 3800, - reward: enumHubGoalRewards.reward_underground_belt_tier_2, - }, - // DEMO STOPS HERE ...(limitedVersion ? [ { - shape: "RpRpRpRp:CwCwCwCw", + shape: "CrCrCrCr", required: 0, reward: enumHubGoalRewards.reward_demo_end, }, ] : [ + // 8 + { + shape: "RbRb----", // painter t2 + required: 480, + reward: enumHubGoalRewards.reward_mixer, + }, + + // 9 + // Mixing (purple) + { + shape: "CpCpCpCp", // belts t3 + required: 600, + reward: enumHubGoalRewards.reward_merger, + }, + + // 10 + // STACKER: Star shape + cyan + { + shape: "ScScScSc", // miners t3 + required: 800, + reward: enumHubGoalRewards.reward_stacker, + }, + + // 11 + // Chainable miner + { + shape: "CgScScCg", // processors t3 + required: 1000, + reward: enumHubGoalRewards.reward_miner_chainable, + }, + + // 12 + // Blueprints + { + shape: "CbCbCbRb:CwCwCwCw", + required: 1000, + reward: enumHubGoalRewards.reward_blueprints, + }, + + // 13 + // Tunnel Tier 2 + { + shape: chinaShapes ? "CuCuCuCu:CwCwCwCw:Sb--Sr--" : "RpRpRpRp:CwCwCwCw", // painting t3 + required: 3800, + reward: enumHubGoalRewards.reward_underground_belt_tier_2, + }, + // 14 // Belt reader { @@ -358,7 +427,9 @@ export function generateLevelDefinitions(limitedVersion = false) { // 17 // Double painter { - shape: "CbRbRbCb:CwCwCwCw:WbWbWbWb", // miner t4 (two variants) + shape: chinaShapes + ? "CyCyCyCy:CyCyCyCy:RyRyRyRy:RuRuRuRu" + : "CbRbRbCb:CwCwCwCw:WbWbWbWb", // miner t4 (two variants) required: 20000, reward: enumHubGoalRewards.reward_painter_double, }, @@ -398,7 +469,9 @@ export function generateLevelDefinitions(limitedVersion = false) { // 22 // Constant signal { - shape: "Cg----Cr:Cw----Cw:Sy------:Cy----Cy", + shape: chinaShapes + ? "RrSySrSy:RyCrCwCr:CyCyRyCy" + : "Cg----Cr:Cw----Cw:Sy------:Cy----Cy", required: 25000, reward: enumHubGoalRewards.reward_constant_signal, }, @@ -406,14 +479,18 @@ export function generateLevelDefinitions(limitedVersion = false) { // 23 // Display { - shape: "CcSyCcSy:SyCcSyCc:CcSyCcSy", + shape: chinaShapes + ? "CrCrCrCr:CwCwCwCw:WwWwWwWw:CrCrCrCr" + : "CcSyCcSy:SyCcSyCc:CcSyCcSy", required: 25000, reward: enumHubGoalRewards.reward_display, }, // 24 Logic gates { - shape: "CcRcCcRc:RwCwRwCw:Sr--Sw--:CyCyCyCy", + shape: chinaShapes + ? "Su----Su:RwRwRwRw:Cu----Cu:CwCwCwCw" + : "CcRcCcRc:RwCwRwCw:Sr--Sw--:CyCyCyCy", required: 25000, reward: enumHubGoalRewards.reward_logic_gates, }, @@ -454,27 +531,101 @@ const fullVersionLevels = generateLevelDefinitions(false); const demoVersionLevels = generateLevelDefinitions(true); export class RegularGameMode extends GameMode { - constructor(root) { - super(root); + static getId() { + return enumGameModeIds.regular; } + static getType() { + return enumGameModeTypes.default; + } + + /** @param {GameRoot} root */ + constructor(root) { + super(root); + + this.additionalHudParts = { + wiresToolbar: HUDWiresToolbar, + unlockNotification: HUDUnlockNotification, + massSelector: HUDMassSelector, + shop: HUDShop, + statistics: HUDStatistics, + waypoints: HUDWaypoints, + wireInfo: HUDWireInfo, + leverToggle: HUDLeverToggle, + pinnedShapes: HUDPinnedShapes, + notifications: HUDNotifications, + screenshotExporter: HUDScreenshotExporter, + wiresOverlay: HUDWiresOverlay, + shapeViewer: HUDShapeViewer, + layerPreview: HUDLayerPreview, + minerHighlight: HUDMinerHighlight, + tutorialVideoOffer: HUDTutorialVideoOffer, + gameMenu: HUDGameMenu, + constantSignalEdit: HUDConstantSignalEdit, + }; + + if (!IS_MOBILE) { + this.additionalHudParts.keybindingOverlay = HUDKeybindingOverlay; + } + + if (this.root.app.restrictionMgr.getIsStandaloneMarketingActive()) { + this.additionalHudParts.watermark = HUDWatermark; + this.additionalHudParts.standaloneAdvantages = HUDStandaloneAdvantages; + this.additionalHudParts.catMemes = HUDCatMemes; + } + + if (this.root.app.settings.getAllSettings().offerHints) { + if (!G_WEGAME_VERSION) { + this.additionalHudParts.tutorialHints = HUDPartTutorialHints; + } + this.additionalHudParts.interactiveTutorial = HUDInteractiveTutorial; + } + + // @ts-ignore + if (queryParamOptions.sandboxMode || window.sandboxMode || G_IS_DEV) { + this.additionalHudParts.sandboxController = HUDSandboxController; + } + + /** @type {(typeof MetaBuilding)[]} */ + this.hiddenBuildings = [MetaConstantProducerBuilding, MetaGoalAcceptorBuilding, MetaBlockBuilding]; + + // @ts-expect-error + if (!(G_IS_DEV || window.sandboxMode || queryParamOptions.sandboxMode)) { + this.hiddenBuildings.push(MetaItemProducerBuilding); + } + } + + /** + * Should return all available upgrades + * @returns {Object} + */ getUpgrades() { return this.root.app.restrictionMgr.getHasExtendedUpgrades() ? fullVersionUpgrades : demoVersionUpgrades; } - getIsFreeplayAvailable() { - return this.root.app.restrictionMgr.getHasExtendedLevelsAndFreeplay(); - } - - getBlueprintShapeKey() { - return blueprintShape; - } - + /** + * Returns the goals for all levels including their reward + * @returns {Array} + */ getLevelDefinitions() { return this.root.app.restrictionMgr.getHasExtendedLevelsAndFreeplay() ? fullVersionLevels : demoVersionLevels; } + + /** + * Should return whether free play is available or if the game stops + * after the predefined levels + * @returns {boolean} + */ + getIsFreeplayAvailable() { + return this.root.app.restrictionMgr.getHasExtendedLevelsAndFreeplay(); + } + + /** @returns {boolean} */ + hasAchievements() { + return true; + } } diff --git a/src/js/game/production_analytics.js b/src/js/game/production_analytics.js index eda79c83..16eab4b8 100644 --- a/src/js/game/production_analytics.js +++ b/src/js/game/production_analytics.js @@ -83,7 +83,7 @@ export class ProductionAnalytics extends BasicSerializableObject { * @param {enumAnalyticsDataSource} dataSource * @param {ShapeDefinition} definition */ - getCurrentShapeRate(dataSource, definition) { + getCurrentShapeRateRaw(dataSource, definition) { const slices = this.history[dataSource]; return slices[slices.length - 2][definition.getHash()] || 0; } @@ -108,7 +108,7 @@ export class ProductionAnalytics extends BasicSerializableObject { * Returns the rates of all shapes * @param {enumAnalyticsDataSource} dataSource */ - getCurrentShapeRates(dataSource) { + getCurrentShapeRatesRaw(dataSource) { const slices = this.history[dataSource]; // First, copy current slice diff --git a/src/js/game/root.js b/src/js/game/root.js index 6f1e7c36..64004e9d 100644 --- a/src/js/game/root.js +++ b/src/js/game/root.js @@ -8,6 +8,7 @@ import { createLogger } from "../core/logging"; import { GameTime } from "./time/game_time"; import { EntityManager } from "./entity_manager"; import { GameSystemManager } from "./game_system_manager"; +import { AchievementProxy } from "./achievement_proxy"; import { GameHUD } from "./hud/hud"; import { MapView } from "./map_view"; import { Camera } from "./camera"; @@ -78,6 +79,11 @@ export class GameRoot { */ this.bulkOperationRunning = false; + /** + * Whether a immutable operation is running + */ + this.immutableOperationRunning = false; + //////// Other properties /////// /** @type {Camera} */ @@ -119,6 +125,9 @@ export class GameRoot { /** @type {SoundProxy} */ this.soundProxy = null; + /** @type {AchievementProxy} */ + this.achievementProxy = null; + /** @type {ShapeDefinitionManager} */ this.shapeDefinitionMgr = null; @@ -165,6 +174,7 @@ export class GameRoot { itemProduced: /** @type {TypedSignal<[BaseItem]>} */ (new Signal()), bulkOperationFinished: /** @type {TypedSignal<[]>} */ (new Signal()), + immutableOperationFinished: /** @type {TypedSignal<[]>} */ (new Signal()), editModeChanged: /** @type {TypedSignal<[Layer]>} */ (new Signal()), @@ -175,6 +185,13 @@ export class GameRoot { // Called before actually placing an entity, use to perform additional logic // for freeing space before actually placing. freeEntityAreaBeforeBuild: /** @type {TypedSignal<[Entity]>} */ (new Signal()), + + // Called with an achievement key and necessary args to validate it can be unlocked. + achievementCheck: /** @type {TypedSignal<[string, any]>} */ (new Signal()), + bulkAchievementCheck: /** @type {TypedSignal<(string|any)[]>} */ (new Signal()), + + // Puzzle mode + puzzleComplete: /** @type {TypedSignal<[]>} */ (new Signal()), }; // RNG's diff --git a/src/js/game/shape_definition_manager.js b/src/js/game/shape_definition_manager.js index 5bcfcc4b..89203f1e 100644 --- a/src/js/game/shape_definition_manager.js +++ b/src/js/game/shape_definition_manager.js @@ -4,6 +4,7 @@ import { enumColors } from "./colors"; import { ShapeItem } from "./items/shape_item"; import { GameRoot } from "./root"; import { enumSubShape, ShapeDefinition } from "./shape_definition"; +import { ACHIEVEMENTS } from "../platform/achievement_provider"; const logger = createLogger("shape_definition_manager"); @@ -96,6 +97,8 @@ export class ShapeDefinitionManager extends BasicSerializableObject { const rightSide = definition.cloneFilteredByQuadrants([2, 3]); const leftSide = definition.cloneFilteredByQuadrants([0, 1]); + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.cutShape, null); + return /** @type {[ShapeDefinition, ShapeDefinition]} */ (this.operationCache[key] = [ this.registerOrReturnHandle(rightSide), this.registerOrReturnHandle(leftSide), @@ -137,6 +140,8 @@ export class ShapeDefinitionManager extends BasicSerializableObject { const rotated = definition.cloneRotateCW(); + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.rotateShape, null); + return /** @type {ShapeDefinition} */ (this.operationCache[key] = this.registerOrReturnHandle( rotated )); @@ -189,6 +194,9 @@ export class ShapeDefinitionManager extends BasicSerializableObject { if (this.operationCache[key]) { return /** @type {ShapeDefinition} */ (this.operationCache[key]); } + + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.stackShape, null); + const stacked = lowerDefinition.cloneAndStackWith(upperDefinition); return /** @type {ShapeDefinition} */ (this.operationCache[key] = this.registerOrReturnHandle( stacked @@ -206,6 +214,9 @@ export class ShapeDefinitionManager extends BasicSerializableObject { if (this.operationCache[key]) { return /** @type {ShapeDefinition} */ (this.operationCache[key]); } + + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.paintShape, null); + const colorized = definition.cloneAndPaintWith(color); return /** @type {ShapeDefinition} */ (this.operationCache[key] = this.registerOrReturnHandle( colorized diff --git a/src/js/game/systems/belt.js b/src/js/game/systems/belt.js index 10543e6c..00491eff 100644 --- a/src/js/game/systems/belt.js +++ b/src/js/game/systems/belt.js @@ -164,7 +164,10 @@ export class BeltSystem extends GameSystemWithFilter { // Compute delta to see if anything changed const newDirection = arrayBeltVariantToRotation[rotationVariant]; - if (targetStaticComp.rotation !== rotation || newDirection !== targetBeltComp.direction) { + if ( + !this.root.immutableOperationRunning && + (targetStaticComp.rotation !== rotation || newDirection !== targetBeltComp.direction) + ) { const originalPath = targetBeltComp.assignedPath; // Ok, first remove it from its current path diff --git a/src/js/game/systems/belt_reader.js b/src/js/game/systems/belt_reader.js index fbd00b6c..41211c05 100644 --- a/src/js/game/systems/belt_reader.js +++ b/src/js/game/systems/belt_reader.js @@ -14,7 +14,6 @@ export class BeltReaderSystem extends GameSystemWithFilter { const minimumTimeForThroughput = now - 1; for (let i = 0; i < this.allEntities.length; ++i) { const entity = this.allEntities[i]; - const readerComp = entity.components.BeltReader; const pinsComp = entity.components.WiredPins; @@ -23,12 +22,14 @@ export class BeltReaderSystem extends GameSystemWithFilter { readerComp.lastItemTimes.shift(); } - pinsComp.slots[1].value = readerComp.lastItem; - pinsComp.slots[0].value = - (readerComp.lastItemTimes[readerComp.lastItemTimes.length - 1] || 0) > - minimumTimeForThroughput - ? BOOL_TRUE_SINGLETON - : BOOL_FALSE_SINGLETON; + if (pinsComp) { + pinsComp.slots[1].value = readerComp.lastItem; + pinsComp.slots[0].value = + (readerComp.lastItemTimes[readerComp.lastItemTimes.length - 1] || 0) > + minimumTimeForThroughput + ? BOOL_TRUE_SINGLETON + : BOOL_FALSE_SINGLETON; + } if (now - readerComp.lastThroughputComputation > 0.5) { // Compute throughput diff --git a/src/js/game/systems/constant_producer.js b/src/js/game/systems/constant_producer.js new file mode 100644 index 00000000..5c10b409 --- /dev/null +++ b/src/js/game/systems/constant_producer.js @@ -0,0 +1,62 @@ +import { globalConfig } from "../../core/config"; +import { DrawParameters } from "../../core/draw_parameters"; +import { Vector } from "../../core/vector"; +import { ConstantSignalComponent } from "../components/constant_signal"; +import { ItemProducerComponent } from "../components/item_producer"; +import { GameSystemWithFilter } from "../game_system_with_filter"; +import { MapChunk } from "../map_chunk"; +import { GameRoot } from "../root"; + +export class ConstantProducerSystem extends GameSystemWithFilter { + /** @param {GameRoot} root */ + constructor(root) { + super(root, [ConstantSignalComponent, ItemProducerComponent]); + } + + update() { + for (let i = 0; i < this.allEntities.length; ++i) { + const entity = this.allEntities[i]; + const signalComp = entity.components.ConstantSignal; + const ejectorComp = entity.components.ItemEjector; + if (!ejectorComp) { + continue; + } + ejectorComp.tryEject(0, signalComp.signal); + } + } + + /** + * + * @param {DrawParameters} parameters + * @param {MapChunk} chunk + * @returns + */ + drawChunk(parameters, chunk) { + const contents = chunk.containedEntitiesByLayer.regular; + for (let i = 0; i < contents.length; ++i) { + const producerComp = contents[i].components.ItemProducer; + const signalComp = contents[i].components.ConstantSignal; + + if (!producerComp || !signalComp) { + continue; + } + + const staticComp = contents[i].components.StaticMapEntity; + const item = signalComp.signal; + + if (!item) { + continue; + } + + const center = staticComp.getTileSpaceBounds().getCenter().toWorldSpace(); + + const localOffset = new Vector(0, 1).rotateFastMultipleOf90(staticComp.rotation); + item.drawItemCenteredClipped( + center.x + localOffset.x, + center.y + localOffset.y, + parameters, + globalConfig.tileSize * 0.65 + ); + } + } +} diff --git a/src/js/game/systems/constant_signal.js b/src/js/game/systems/constant_signal.js index aaf31a19..29079825 100644 --- a/src/js/game/systems/constant_signal.js +++ b/src/js/game/systems/constant_signal.js @@ -17,24 +17,31 @@ export class ConstantSignalSystem extends GameSystemWithFilter { constructor(root) { super(root, [ConstantSignalComponent]); - this.root.signals.entityManuallyPlaced.add(this.querySigalValue, this); + this.root.signals.entityManuallyPlaced.add(entity => + this.editConstantSignal(entity, { deleteOnCancel: true }) + ); } update() { // Set signals for (let i = 0; i < this.allEntities.length; ++i) { const entity = this.allEntities[i]; - const pinsComp = entity.components.WiredPins; const signalComp = entity.components.ConstantSignal; - pinsComp.slots[0].value = signalComp.signal; + const pinsComp = entity.components.WiredPins; + + if (pinsComp) { + pinsComp.slots[0].value = signalComp.signal; + } } } /** * Asks the entity to enter a valid signal code * @param {Entity} entity + * @param {object} param0 + * @param {boolean=} param0.deleteOnCancel */ - querySigalValue(entity) { + editConstantSignal(entity, { deleteOnCancel = true }) { if (!entity.components.ConstantSignal) { return; } @@ -42,36 +49,57 @@ export class ConstantSignalSystem extends GameSystemWithFilter { // Ok, query, but also save the uid because it could get stale const uid = entity.uid; + const signal = entity.components.ConstantSignal.signal; const signalValueInput = new FormElementInput({ id: "signalValue", label: fillInLinkIntoTranslation(T.dialogs.editSignal.descShortKey, THIRDPARTY_URLS.shapeViewer), placeholder: "", - defaultValue: "", - validator: val => this.parseSignalCode(val), + defaultValue: signal ? signal.getAsCopyableKey() : "", + validator: val => this.parseSignalCode(entity, val), }); + const items = [...Object.values(COLOR_ITEM_SINGLETONS)]; + + if (entity.components.WiredPins) { + items.unshift(BOOL_FALSE_SINGLETON, BOOL_TRUE_SINGLETON); + items.push( + this.root.shapeDefinitionMgr.getShapeItemFromShortKey( + this.root.gameMode.getBlueprintShapeKey() + ) + ); + } else { + // producer which can produce virtually anything + const shapes = ["CuCuCuCu", "RuRuRuRu", "WuWuWuWu", "SuSuSuSu"]; + items.unshift( + ...shapes.reverse().map(key => this.root.shapeDefinitionMgr.getShapeItemFromShortKey(key)) + ); + } + + if (this.root.gameMode.hasHub()) { + items.push( + this.root.shapeDefinitionMgr.getShapeItemFromDefinition( + this.root.hubGoals.currentGoal.definition + ) + ); + } + + if (this.root.hud.parts.pinnedShapes) { + items.push( + ...this.root.hud.parts.pinnedShapes.pinnedShapes.map(key => + this.root.shapeDefinitionMgr.getShapeItemFromShortKey(key) + ) + ); + } + const itemInput = new FormElementItemChooser({ id: "signalItem", label: null, - items: [ - BOOL_FALSE_SINGLETON, - BOOL_TRUE_SINGLETON, - ...Object.values(COLOR_ITEM_SINGLETONS), - this.root.shapeDefinitionMgr.getShapeItemFromDefinition( - this.root.hubGoals.currentGoal.definition - ), - this.root.shapeDefinitionMgr.getShapeItemFromShortKey( - this.root.gameMode.getBlueprintShapeKey() - ), - ...this.root.hud.parts.pinnedShapes.pinnedShapes.map(key => - this.root.shapeDefinitionMgr.getShapeItemFromShortKey(key) - ), - ], + items, }); const dialog = new DialogWithForm({ app: this.root.app, - title: T.dialogs.editSignal.title, + title: T.dialogs.editConstantProducer.title, desc: T.dialogs.editSignal.descItems, formElements: [itemInput, signalValueInput], buttons: ["cancel:bad:escape", "ok:good:enter"], @@ -99,45 +127,52 @@ export class ConstantSignalSystem extends GameSystemWithFilter { } if (itemInput.chosenItem) { - console.log(itemInput.chosenItem); constantComp.signal = itemInput.chosenItem; } else { - constantComp.signal = this.parseSignalCode(signalValueInput.getValue()); + constantComp.signal = this.parseSignalCode(entity, signalValueInput.getValue()); } }; - dialog.buttonSignals.ok.add(closeHandler); - dialog.valueChosen.add(closeHandler); + dialog.buttonSignals.ok.add(() => { + closeHandler(); + }); + dialog.valueChosen.add(() => { + dialog.closeRequested.dispatch(); + closeHandler(); + }); // When cancelled, destroy the entity again - dialog.buttonSignals.cancel.add(() => { - if (!this.root || !this.root.entityMgr) { - // Game got stopped - return; - } + if (deleteOnCancel) { + dialog.buttonSignals.cancel.add(() => { + if (!this.root || !this.root.entityMgr) { + // Game got stopped + return; + } - const entityRef = this.root.entityMgr.findByUid(uid, false); - if (!entityRef) { - // outdated - return; - } + const entityRef = this.root.entityMgr.findByUid(uid, false); + if (!entityRef) { + // outdated + return; + } - const constantComp = entityRef.components.ConstantSignal; - if (!constantComp) { - // no longer interesting - return; - } + const constantComp = entityRef.components.ConstantSignal; + if (!constantComp) { + // no longer interesting + return; + } - this.root.logic.tryDeleteBuilding(entityRef); - }); + this.root.logic.tryDeleteBuilding(entityRef); + }); + } } /** * Tries to parse a signal code + * @param {Entity} entity * @param {string} code * @returns {BaseItem} */ - parseSignalCode(code) { + parseSignalCode(entity, code) { if (!this.root || !this.root.shapeDefinitionMgr) { // Stale reference return null; @@ -149,12 +184,15 @@ export class ConstantSignalSystem extends GameSystemWithFilter { if (enumColors[codeLower]) { return COLOR_ITEM_SINGLETONS[codeLower]; } - if (code === "1" || codeLower === "true") { - return BOOL_TRUE_SINGLETON; - } - if (code === "0" || codeLower === "false") { - return BOOL_FALSE_SINGLETON; + if (entity.components.WiredPins) { + if (code === "1" || codeLower === "true") { + return BOOL_TRUE_SINGLETON; + } + + if (code === "0" || codeLower === "false") { + return BOOL_FALSE_SINGLETON; + } } if (ShapeDefinition.isValidShortKey(code)) { diff --git a/src/js/game/systems/goal_acceptor.js b/src/js/game/systems/goal_acceptor.js new file mode 100644 index 00000000..60d4a984 --- /dev/null +++ b/src/js/game/systems/goal_acceptor.js @@ -0,0 +1,136 @@ +import { globalConfig } from "../../core/config"; +import { DrawParameters } from "../../core/draw_parameters"; +import { clamp, lerp } from "../../core/utils"; +import { Vector } from "../../core/vector"; +import { GoalAcceptorComponent } from "../components/goal_acceptor"; +import { GameSystemWithFilter } from "../game_system_with_filter"; +import { MapChunk } from "../map_chunk"; +import { GameRoot } from "../root"; + +export class GoalAcceptorSystem extends GameSystemWithFilter { + /** @param {GameRoot} root */ + constructor(root) { + super(root, [GoalAcceptorComponent]); + + this.puzzleCompleted = false; + } + + update() { + const now = this.root.time.now(); + + let allAccepted = true; + + for (let i = 0; i < this.allEntities.length; ++i) { + const entity = this.allEntities[i]; + const goalComp = entity.components.GoalAcceptor; + + if (!goalComp.lastDelivery) { + allAccepted = false; + continue; + } + + if (now - goalComp.lastDelivery.time > goalComp.getRequiredSecondsPerItem()) { + goalComp.clearItems(); + } + + if (goalComp.currentDeliveredItems < globalConfig.goalAcceptorItemsRequired) { + allAccepted = false; + } + } + + if ( + !this.puzzleCompleted && + this.root.gameInitialized && + allAccepted && + !this.root.gameMode.getIsEditor() + ) { + this.root.signals.puzzleComplete.dispatch(); + this.puzzleCompleted = true; + } + } + + /** + * + * @param {DrawParameters} parameters + * @param {MapChunk} chunk + * @returns + */ + drawChunk(parameters, chunk) { + const contents = chunk.containedEntitiesByLayer.regular; + for (let i = 0; i < contents.length; ++i) { + const goalComp = contents[i].components.GoalAcceptor; + + if (!goalComp) { + continue; + } + + const staticComp = contents[i].components.StaticMapEntity; + const item = goalComp.item; + + const requiredItems = globalConfig.goalAcceptorItemsRequired; + + const fillPercentage = clamp(goalComp.currentDeliveredItems / requiredItems, 0, 1); + + const center = staticComp.getTileSpaceBounds().getCenter().toWorldSpace(); + if (item) { + const localOffset = new Vector(0, -1.8).rotateFastMultipleOf90(staticComp.rotation); + item.drawItemCenteredClipped( + center.x + localOffset.x, + center.y + localOffset.y, + parameters, + globalConfig.tileSize * 0.65 + ); + } + + const isValid = item && goalComp.currentDeliveredItems >= requiredItems; + + parameters.context.translate(center.x, center.y); + parameters.context.rotate((staticComp.rotation / 180) * Math.PI); + + parameters.context.lineWidth = 1; + parameters.context.fillStyle = "#8de255"; + parameters.context.strokeStyle = "#64666e"; + parameters.context.lineCap = "round"; + + // progress arc + + goalComp.displayPercentage = lerp(goalComp.displayPercentage, fillPercentage, 0.2); + + const startAngle = Math.PI * 0.595; + const maxAngle = Math.PI * 1.82; + parameters.context.beginPath(); + parameters.context.arc( + 0.25, + -1.5, + 11.6, + startAngle, + startAngle + goalComp.displayPercentage * maxAngle, + false + ); + parameters.context.arc( + 0.25, + -1.5, + 15.5, + startAngle + goalComp.displayPercentage * maxAngle, + startAngle, + true + ); + parameters.context.closePath(); + parameters.context.fill(); + parameters.context.stroke(); + parameters.context.lineCap = "butt"; + + // LED indicator + + parameters.context.lineWidth = 1.2; + parameters.context.strokeStyle = "#64666e"; + parameters.context.fillStyle = isValid ? "#8de255" : "#ff666a"; + parameters.context.beginCircle(10, 11.8, 5); + parameters.context.fill(); + parameters.context.stroke(); + + parameters.context.rotate((-staticComp.rotation / 180) * Math.PI); + parameters.context.translate(-center.x, -center.y); + } + } +} diff --git a/src/js/game/systems/item_ejector.js b/src/js/game/systems/item_ejector.js index 56535111..db37455a 100644 --- a/src/js/game/systems/item_ejector.js +++ b/src/js/game/systems/item_ejector.js @@ -4,6 +4,7 @@ import { createLogger } from "../../core/logging"; import { Rectangle } from "../../core/rectangle"; import { StaleAreaDetector } from "../../core/stale_area_detector"; import { enumDirection, enumDirectionToVector } from "../../core/vector"; +import { ACHIEVEMENTS } from "../../platform/achievement_provider"; import { BaseItem } from "../base_item"; import { BeltComponent } from "../components/belt"; import { ItemAcceptorComponent } from "../components/item_acceptor"; @@ -238,6 +239,14 @@ export class ItemEjectorSystem extends GameSystemWithFilter { return false; } + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + // + // NOTICE ! THIS CODE IS DUPLICATED IN THE BELT PATH FOR PERFORMANCE REASONS + // + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + const itemProcessorComp = receiver.components.ItemProcessor; if (itemProcessorComp) { // Check for potential filters @@ -328,6 +337,64 @@ export class ItemEjectorSystem extends GameSystemWithFilter { continue; } + // Limit the progress to the maximum available space on the next belt (also see #1000) + let progress = slot.progress; + const nextBeltPath = slot.cachedBeltPath; + if (nextBeltPath) { + /* + If you imagine the track between the center of the building and the center of the first belt as + a range from 0 to 1: + + Building Belt + | X | X | + | 0...................1 | + + And for example the first item on belt has a distance of 0.4 to the beginning of the belt: + + Building Belt + | X | X | + | 0...................1 | + ^ item + + Then the space towards this first item is always 0.5 (the distance from the center of the building to the beginning of the belt) + PLUS the spacing to the item, so in this case 0.5 + 0.4 = 0.9: + + Building Belt + | X | X | + | 0...................1 | + ^ item @ 0.9 + + Since items must not get clashed, we need to substract some spacing (lets assume it is 0.6, exact value see globalConfig.itemSpacingOnBelts), + So we do 0.9 - globalConfig.itemSpacingOnBelts = 0.3 + + Building Belt + | X | X | + | 0...................1 | + ^ ^ item @ 0.9 + ^ max progress = 0.3 + + Because now our range actually only goes to the end of the building, and not towards the center of the building, we need to multiply + all values by 2: + + Building Belt + | X | X | + | 0.........1.........2 | + ^ ^ item @ 1.8 + ^ max progress = 0.6 + + And that's it! If you summarize the calculations from above into a formula, you get the one below. + */ + + const maxProgress = + (0.5 + nextBeltPath.spacingToFirstItem - globalConfig.itemSpacingOnBelts) * 2; + progress = Math.min(maxProgress, progress); + } + + // Skip if the item would barely be visible + if (progress < 0.05) { + continue; + } + const realPosition = staticComp.localTileToWorld(slot.pos); if (!chunk.tileSpaceRectangle.containsPoint(realPosition.x, realPosition.y)) { // Not within this chunk @@ -337,8 +404,8 @@ export class ItemEjectorSystem extends GameSystemWithFilter { const realDirection = staticComp.localDirectionToWorld(slot.direction); const realDirectionVector = enumDirectionToVector[realDirection]; - const tileX = realPosition.x + 0.5 + realDirectionVector.x * 0.5 * slot.progress; - const tileY = realPosition.y + 0.5 + realDirectionVector.y * 0.5 * slot.progress; + const tileX = realPosition.x + 0.5 + realDirectionVector.x * 0.5 * progress; + const tileY = realPosition.y + 0.5 + realDirectionVector.y * 0.5 * progress; const worldX = tileX * globalConfig.tileSize; const worldY = tileY * globalConfig.tileSize; diff --git a/src/js/game/systems/item_processor.js b/src/js/game/systems/item_processor.js index 9775afde..525c242c 100644 --- a/src/js/game/systems/item_processor.js +++ b/src/js/game/systems/item_processor.js @@ -1,3 +1,4 @@ +import { globalConfig } from "../../core/config"; import { BaseItem } from "../base_item"; import { enumColorMixingResults, enumColors } from "../colors"; import { @@ -31,8 +32,8 @@ const MAX_QUEUED_CHARGES = 2; * Type of a processor implementation * @typedef {{ * entity: Entity, - * items: Array<{ item: BaseItem, sourceSlot: number }>, - * itemsBySlot: Object, + * items: Map, + * inputCount: number, * outItems: Array * }} ProcessorImplementationPayload */ @@ -59,6 +60,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter { [enumItemProcessorTypes.painterQuad]: this.process_PAINTER_QUAD, [enumItemProcessorTypes.hub]: this.process_HUB, [enumItemProcessorTypes.reader]: this.process_READER, + [enumItemProcessorTypes.goal]: this.process_GOAL, }; // Bind all handlers @@ -187,7 +189,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter { // DEFAULT // By default, we can start processing once all inputs are there case null: { - return processorComp.inputSlots.length >= processorComp.inputsPerCharge; + return processorComp.inputCount >= processorComp.inputsPerCharge; } // QUAD PAINTER @@ -195,18 +197,12 @@ export class ItemProcessorSystem extends GameSystemWithFilter { case enumItemProcessorRequirements.painterQuad: { const pinsComp = entity.components.WiredPins; - /** @type {Object.} */ - const itemsBySlot = {}; - for (let i = 0; i < processorComp.inputSlots.length; ++i) { - itemsBySlot[processorComp.inputSlots[i].sourceSlot] = processorComp.inputSlots[i]; - } - // First slot is the shape, so if it's not there we can't do anything - if (!itemsBySlot[0]) { + const shapeItem = /** @type {ShapeItem} */ (processorComp.inputSlots.get(0)); + if (!shapeItem) { return false; } - const shapeItem = /** @type {ShapeItem} */ (itemsBySlot[0].item); const slotStatus = []; // Check which slots are enabled @@ -231,7 +227,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter { // Check if all colors of the enabled slots are there for (let i = 0; i < slotStatus.length; ++i) { - if (slotStatus[i] && !itemsBySlot[1 + i]) { + if (slotStatus[i] && !processorComp.inputSlots.get(1 + i)) { // A slot which is enabled wasn't enabled. Make sure if there is anything on the quadrant, // it is not possible to paint, but if there is nothing we can ignore it for (let j = 0; j < 4; ++j) { @@ -260,13 +256,6 @@ export class ItemProcessorSystem extends GameSystemWithFilter { // First, take items const items = processorComp.inputSlots; - processorComp.inputSlots = []; - - /** @type {Object} */ - const itemsBySlot = {}; - for (let i = 0; i < items.length; ++i) { - itemsBySlot[items[i].sourceSlot] = items[i].item; - } /** @type {Array} */ const outItems = []; @@ -279,8 +268,8 @@ export class ItemProcessorSystem extends GameSystemWithFilter { handler({ entity, items, - itemsBySlot, outItems, + inputCount: processorComp.inputCount, }); // Track produced items @@ -302,6 +291,9 @@ export class ItemProcessorSystem extends GameSystemWithFilter { items: outItems, remainingTime: timeToProcess, }); + + processorComp.inputSlots.clear(); + processorComp.inputCount = 0; } /** @@ -315,12 +307,14 @@ export class ItemProcessorSystem extends GameSystemWithFilter { const availableSlots = payload.entity.components.ItemEjector.slots.length; const processorComp = payload.entity.components.ItemProcessor; - const nextSlot = processorComp.nextOutputSlot++ % availableSlots; - - for (let i = 0; i < payload.items.length; ++i) { + for (let i = 0; i < 2; ++i) { + const item = payload.items.get(i); + if (!item) { + continue; + } payload.outItems.push({ - item: payload.items[i].item, - preferredSlot: (nextSlot + i) % availableSlots, + item, + preferredSlot: processorComp.nextOutputSlot++ % availableSlots, doNotTrack: true, }); } @@ -331,20 +325,25 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_CUTTER(payload) { - const inputItem = /** @type {ShapeItem} */ (payload.items[0].item); + const inputItem = /** @type {ShapeItem} */ (payload.items.get(0)); assert(inputItem instanceof ShapeItem, "Input for cut is not a shape"); const inputDefinition = inputItem.definition; const cutDefinitions = this.root.shapeDefinitionMgr.shapeActionCutHalf(inputDefinition); + const ejectorComp = payload.entity.components.ItemEjector; for (let i = 0; i < cutDefinitions.length; ++i) { const definition = cutDefinitions[i]; - if (!definition.isEntirelyEmpty()) { - payload.outItems.push({ - item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), - requiredSlot: i, - }); + + if (definition.isEntirelyEmpty()) { + ejectorComp.slots[i].lastItem = null; + continue; } + + payload.outItems.push({ + item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), + requiredSlot: i, + }); } } @@ -352,20 +351,25 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_CUTTER_QUAD(payload) { - const inputItem = /** @type {ShapeItem} */ (payload.items[0].item); + const inputItem = /** @type {ShapeItem} */ (payload.items.get(0)); assert(inputItem instanceof ShapeItem, "Input for cut is not a shape"); const inputDefinition = inputItem.definition; const cutDefinitions = this.root.shapeDefinitionMgr.shapeActionCutQuad(inputDefinition); + const ejectorComp = payload.entity.components.ItemEjector; for (let i = 0; i < cutDefinitions.length; ++i) { const definition = cutDefinitions[i]; - if (!definition.isEntirelyEmpty()) { - payload.outItems.push({ - item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), - requiredSlot: i, - }); + + if (definition.isEntirelyEmpty()) { + ejectorComp.slots[i].lastItem = null; + continue; } + + payload.outItems.push({ + item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), + requiredSlot: i, + }); } } @@ -373,7 +377,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_ROTATER(payload) { - const inputItem = /** @type {ShapeItem} */ (payload.items[0].item); + const inputItem = /** @type {ShapeItem} */ (payload.items.get(0)); assert(inputItem instanceof ShapeItem, "Input for rotation is not a shape"); const inputDefinition = inputItem.definition; @@ -387,7 +391,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_ROTATER_CCW(payload) { - const inputItem = /** @type {ShapeItem} */ (payload.items[0].item); + const inputItem = /** @type {ShapeItem} */ (payload.items.get(0)); assert(inputItem instanceof ShapeItem, "Input for rotation is not a shape"); const inputDefinition = inputItem.definition; @@ -401,7 +405,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_ROTATER_180(payload) { - const inputItem = /** @type {ShapeItem} */ (payload.items[0].item); + const inputItem = /** @type {ShapeItem} */ (payload.items.get(0)); assert(inputItem instanceof ShapeItem, "Input for rotation is not a shape"); const inputDefinition = inputItem.definition; @@ -415,8 +419,8 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_STACKER(payload) { - const lowerItem = /** @type {ShapeItem} */ (payload.itemsBySlot[0]); - const upperItem = /** @type {ShapeItem} */ (payload.itemsBySlot[1]); + const lowerItem = /** @type {ShapeItem} */ (payload.items.get(0)); + const upperItem = /** @type {ShapeItem} */ (payload.items.get(1)); assert(lowerItem instanceof ShapeItem, "Input for lower stack is not a shape"); assert(upperItem instanceof ShapeItem, "Input for upper stack is not a shape"); @@ -442,8 +446,8 @@ export class ItemProcessorSystem extends GameSystemWithFilter { */ process_MIXER(payload) { // Find both colors and combine them - const item1 = /** @type {ColorItem} */ (payload.items[0].item); - const item2 = /** @type {ColorItem} */ (payload.items[1].item); + const item1 = /** @type {ColorItem} */ (payload.items.get(0)); + const item2 = /** @type {ColorItem} */ (payload.items.get(1)); assert(item1 instanceof ColorItem, "Input for color mixer is not a color"); assert(item2 instanceof ColorItem, "Input for color mixer is not a color"); @@ -465,8 +469,8 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_PAINTER(payload) { - const shapeItem = /** @type {ShapeItem} */ (payload.itemsBySlot[0]); - const colorItem = /** @type {ColorItem} */ (payload.itemsBySlot[1]); + const shapeItem = /** @type {ShapeItem} */ (payload.items.get(0)); + const colorItem = /** @type {ColorItem} */ (payload.items.get(1)); const colorizedDefinition = this.root.shapeDefinitionMgr.shapeActionPaintWith( shapeItem.definition, @@ -482,9 +486,9 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_PAINTER_DOUBLE(payload) { - const shapeItem1 = /** @type {ShapeItem} */ (payload.itemsBySlot[0]); - const shapeItem2 = /** @type {ShapeItem} */ (payload.itemsBySlot[1]); - const colorItem = /** @type {ColorItem} */ (payload.itemsBySlot[2]); + const shapeItem1 = /** @type {ShapeItem} */ (payload.items.get(0)); + const shapeItem2 = /** @type {ShapeItem} */ (payload.items.get(1)); + const colorItem = /** @type {ColorItem} */ (payload.items.get(2)); assert(shapeItem1 instanceof ShapeItem, "Input for painter is not a shape"); assert(shapeItem2 instanceof ShapeItem, "Input for painter is not a shape"); @@ -512,14 +516,15 @@ export class ItemProcessorSystem extends GameSystemWithFilter { * @param {ProcessorImplementationPayload} payload */ process_PAINTER_QUAD(payload) { - const shapeItem = /** @type {ShapeItem} */ (payload.itemsBySlot[0]); + const shapeItem = /** @type {ShapeItem} */ (payload.items.get(0)); assert(shapeItem instanceof ShapeItem, "Input for painter is not a shape"); /** @type {Array} */ const colors = [null, null, null, null]; for (let i = 0; i < 4; ++i) { - if (payload.itemsBySlot[i + 1]) { - colors[i] = /** @type {ColorItem} */ (payload.itemsBySlot[i + 1]).color; + const colorItem = /** @type {ColorItem} */ (payload.items.get(i + 1)); + if (colorItem) { + colors[i] = colorItem.color; } } @@ -538,7 +543,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter { */ process_READER(payload) { // Pass through the item - const item = payload.itemsBySlot[0]; + const item = payload.items.get(0); payload.outItems.push({ item, doNotTrack: true, @@ -557,9 +562,41 @@ export class ItemProcessorSystem extends GameSystemWithFilter { const hubComponent = payload.entity.components.Hub; assert(hubComponent, "Hub item processor has no hub component"); - for (let i = 0; i < payload.items.length; ++i) { - const item = /** @type {ShapeItem} */ (payload.items[i].item); + // Hardcoded + for (let i = 0; i < payload.inputCount; ++i) { + const item = /** @type {ShapeItem} */ (payload.items.get(i)); + if (!item) { + continue; + } this.root.hubGoals.handleDefinitionDelivered(item.definition); } } + + /** + * @param {ProcessorImplementationPayload} payload + */ + process_GOAL(payload) { + const goalComp = payload.entity.components.GoalAcceptor; + const item = payload.items.get(0); + const now = this.root.time.now(); + + if (goalComp.item && !item.equals(goalComp.item)) { + goalComp.clearItems(); + } else { + goalComp.currentDeliveredItems = Math.min( + goalComp.currentDeliveredItems + 1, + globalConfig.goalAcceptorItemsRequired + ); + } + + if (this.root.gameMode.getIsEditor()) { + // while playing in editor, assign the item + goalComp.item = item; + } + + goalComp.lastDelivery = { + item, + time: now, + }; + } } diff --git a/src/js/game/systems/item_producer.js b/src/js/game/systems/item_producer.js index 52edf5d1..0a385907 100644 --- a/src/js/game/systems/item_producer.js +++ b/src/js/game/systems/item_producer.js @@ -1,15 +1,26 @@ +/* typehints:start */ +import { GameRoot } from "../root"; +/* typehints:end */ + import { ItemProducerComponent } from "../components/item_producer"; import { GameSystemWithFilter } from "../game_system_with_filter"; export class ItemProducerSystem extends GameSystemWithFilter { + /** @param {GameRoot} root */ constructor(root) { super(root, [ItemProducerComponent]); + this.item = null; } update() { for (let i = 0; i < this.allEntities.length; ++i) { const entity = this.allEntities[i]; + const ejectorComp = entity.components.ItemEjector; const pinsComp = entity.components.WiredPins; + if (!pinsComp) { + continue; + } + const pin = pinsComp.slots[0]; const network = pin.linkedNetwork; @@ -17,8 +28,8 @@ export class ItemProducerSystem extends GameSystemWithFilter { continue; } - const ejectorComp = entity.components.ItemEjector; - ejectorComp.tryEject(0, network.currentValue); + this.item = network.currentValue; + ejectorComp.tryEject(0, this.item); } } } diff --git a/src/js/game/systems/underground_belt.js b/src/js/game/systems/underground_belt.js index 7a7609f8..9b31eec1 100644 --- a/src/js/game/systems/underground_belt.js +++ b/src/js/game/systems/underground_belt.js @@ -224,13 +224,16 @@ export class UndergroundBeltSystem extends GameSystemWithFilter { update() { this.staleAreaWatcher.update(); + const sender = enumUndergroundBeltMode.sender; + const now = this.root.time.now(); + for (let i = 0; i < this.allEntities.length; ++i) { const entity = this.allEntities[i]; const undergroundComp = entity.components.UndergroundBelt; - if (undergroundComp.mode === enumUndergroundBeltMode.sender) { + if (undergroundComp.mode === sender) { this.handleSender(entity); } else { - this.handleReceiver(entity); + this.handleReceiver(entity, now); } } } @@ -327,14 +330,15 @@ export class UndergroundBeltSystem extends GameSystemWithFilter { /** * * @param {Entity} entity + * @param {number} now */ - handleReceiver(entity) { + handleReceiver(entity, now) { const undergroundComp = entity.components.UndergroundBelt; // Try to eject items, we only check the first one because it is sorted by remaining time const nextItemAndDuration = undergroundComp.pendingItems[0]; if (nextItemAndDuration) { - if (this.root.time.now() > nextItemAndDuration[1]) { + if (now > nextItemAndDuration[1]) { const ejectorComp = entity.components.ItemEjector; const nextSlotIndex = ejectorComp.getFirstFreeSlot(); diff --git a/src/js/game/systems/wire.js b/src/js/game/systems/wire.js index 4d0e6de4..0491def6 100644 --- a/src/js/game/systems/wire.js +++ b/src/js/game/systems/wire.js @@ -13,6 +13,7 @@ import { enumInvertedDirections, Vector, } from "../../core/vector"; +import { ACHIEVEMENTS } from "../../platform/achievement_provider"; import { BaseItem } from "../base_item"; import { arrayWireRotationVariantToType, MetaWireBuilding } from "../buildings/wire"; import { getCodeFromBuildingData } from "../building_codes"; @@ -697,6 +698,8 @@ export class WireSystem extends GameSystemWithFilter { return; } + this.root.signals.achievementCheck.dispatch(ACHIEVEMENTS.place5000Wires, entity); + // Invalidate affected area const originalRect = staticComp.getTileSpaceBounds(); const affectedArea = originalRect.expandedInAllDirections(1); diff --git a/src/js/game/systems/zone.js b/src/js/game/systems/zone.js new file mode 100644 index 00000000..109f5166 --- /dev/null +++ b/src/js/game/systems/zone.js @@ -0,0 +1,105 @@ +/* typehints:start */ +import { DrawParameters } from "../../core/draw_parameters"; +import { MapChunkView } from "../map_chunk_view"; +import { GameRoot } from "../root"; +/* typehints:end */ + +import { globalConfig } from "../../core/config"; +import { STOP_PROPAGATION } from "../../core/signal"; +import { GameSystem } from "../game_system"; +import { THEME } from "../theme"; +import { Entity } from "../entity"; +import { Vector } from "../../core/vector"; + +export class ZoneSystem extends GameSystem { + /** @param {GameRoot} root */ + constructor(root) { + super(root); + this.drawn = false; + this.root.signals.prePlacementCheck.add(this.prePlacementCheck, this); + + this.root.signals.gameFrameStarted.add(() => { + this.drawn = false; + }); + } + + /** + * + * @param {Entity} entity + * @param {Vector | undefined} tile + * @returns + */ + prePlacementCheck(entity, tile = null) { + const staticComp = entity.components.StaticMapEntity; + + if (!staticComp) { + return; + } + + const mode = this.root.gameMode; + + const zones = mode.getBuildableZones(); + if (!zones) { + return; + } + + const transformed = staticComp.getTileSpaceBounds(); + if (tile) { + transformed.x += tile.x; + transformed.y += tile.y; + } + + if (!zones.some(zone => zone.intersectsFully(transformed))) { + return STOP_PROPAGATION; + } + } + + /** + * Draws the zone + * @param {DrawParameters} parameters + * @param {MapChunkView} chunk + */ + drawChunk(parameters, chunk) { + if (this.drawn) { + // oof + return; + } + this.drawn = true; + + const mode = this.root.gameMode; + + const zones = mode.getBuildableZones(); + if (!zones) { + return; + } + + const zone = zones[0].allScaled(globalConfig.tileSize); + const context = parameters.context; + + context.lineWidth = 2; + context.strokeStyle = THEME.map.zone.borderSolid; + context.beginPath(); + context.rect(zone.x - 1, zone.y - 1, zone.w + 2, zone.h + 2); + context.stroke(); + + const outer = zone; + const padding = 40 * globalConfig.tileSize; + context.fillStyle = THEME.map.zone.outerColor; + context.fillRect(outer.x + outer.w, outer.y, padding, outer.h); + context.fillRect(outer.x - padding, outer.y, padding, outer.h); + context.fillRect( + outer.x - padding - globalConfig.tileSize, + outer.y - padding, + 2 * padding + zone.w + 2 * globalConfig.tileSize, + padding + ); + context.fillRect( + outer.x - padding - globalConfig.tileSize, + outer.y + outer.h, + 2 * padding + zone.w + 2 * globalConfig.tileSize, + padding + ); + + context.globalAlpha = 1; + } +} diff --git a/src/js/game/themes/dark.json b/src/js/game/themes/dark.json index 733b7682..fec42e28 100644 --- a/src/js/game/themes/dark.json +++ b/src/js/game/themes/dark.json @@ -47,6 +47,11 @@ "textColor": "#fff", "textColorCapped": "#ef5072", "background": "rgba(40, 50, 60, 0.8)" + }, + + "zone": { + "borderSolid": "rgba(23, 192, 255, 1)", + "outerColor": "rgba(20 , 20, 25, 0.5)" } }, @@ -54,5 +59,10 @@ "outline": "#111418", "outlineWidth": 0.75, "circleBackground": "rgba(20, 30, 40, 0.3)" + }, + + "shapeTooltip": { + "background": "rgba(242, 245, 254, 0.9)", + "outline": "#44464e" } } diff --git a/src/js/game/themes/light.json b/src/js/game/themes/light.json index 0c793c26..d44a15ab 100644 --- a/src/js/game/themes/light.json +++ b/src/js/game/themes/light.json @@ -48,6 +48,11 @@ "textColor": "#fff", "textColorCapped": "#ef5072", "background": "rgba(40, 50, 60, 0.8)" + }, + + "zone": { + "borderSolid": "rgba(23, 192, 255, 1)", + "outerColor": "rgba(240, 240, 255, 0.5)" } }, @@ -55,5 +60,10 @@ "outline": "#55575a", "outlineWidth": 0.75, "circleBackground": "rgba(40, 50, 65, 0.1)" + }, + + "shapeTooltip": { + "background": "#dee1ea", + "outline": "#54565e" } } diff --git a/src/js/globals.d.ts b/src/js/globals.d.ts index 642745ca..bf870fab 100644 --- a/src/js/globals.d.ts +++ b/src/js/globals.d.ts @@ -19,6 +19,9 @@ declare const G_BUILD_VERSION: string; declare const G_ALL_UI_IMAGES: Array; declare const G_IS_RELEASE: boolean; +declare const G_CHINA_VERSION: boolean; +declare const G_WEGAME_VERSION: boolean; + // Polyfills declare interface String { replaceAll(search: string, replacement: string): string; @@ -183,6 +186,7 @@ declare const STOP_PROPAGATION = "stop_propagation"; declare interface TypedSignal> { add(receiver: (...args: T) => /* STOP_PROPAGATION */ string | void, scope?: object); + addToTop(receiver: (...args: T) => /* STOP_PROPAGATION */ string | void, scope?: object); remove(receiver: (...args: T) => /* STOP_PROPAGATION */ string | void); dispatch(...args: T): /* STOP_PROPAGATION */ string | void; diff --git a/src/js/languages.js b/src/js/languages.js index 4cc39f9b..b36b172f 100644 --- a/src/js/languages.js +++ b/src/js/languages.js @@ -8,120 +8,190 @@ export const LANGUAGES = { code: "en", region: "", }, - "de": { - name: "Deutsch", - data: require("./built-temp/base-de.json"), - code: "de", - region: "", - }, - "fr": { - name: "Français", - data: require("./built-temp/base-fr.json"), - code: "fr", - region: "", - }, - "ja": { - name: "日本語", - data: require("./built-temp/base-ja.json"), - code: "ja", - region: "", - }, - "pt-PT": { - name: "Português (Portugal)", - data: require("./built-temp/base-pt-PT.json"), - code: "pt", - region: "PT", - }, - "pt-BR": { - name: "Português (Brasil)", - data: require("./built-temp/base-pt-BR.json"), - code: "pt", - region: "BR", - }, - "ru": { - name: "Русский", - data: require("./built-temp/base-ru.json"), - code: "ru", - region: "", - }, - "cs": { - name: "Čeština", - data: require("./built-temp/base-cz.json"), - code: "cs", - region: "", - }, - "es-419": { - name: "Español", - data: require("./built-temp/base-es.json"), - code: "es", - region: "", - }, - "pl": { - name: "Polski", - data: require("./built-temp/base-pl.json"), - code: "pl", - region: "", - }, - "kor": { - name: "한국어", - data: require("./built-temp/base-kor.json"), - code: "kor", - region: "", - }, - "nl": { - name: "Nederlands", - data: require("./built-temp/base-nl.json"), - code: "nl", - region: "", - }, - "no": { - name: "Norsk", - data: require("./built-temp/base-no.json"), - code: "no", - region: "", - }, - - "tr": { - name: "Türkçe", - data: require("./built-temp/base-tr.json"), - code: "tr", - region: "", - }, "zh-CN": { - // simplified - name: "中文简体", - data: require("./built-temp/base-zh-CN.json"), + // simplified chinese + name: "简体中文", + data: G_WEGAME_VERSION + ? require("./built-temp/base-zh-CN-ISBN.json") + : require("./built-temp/base-zh-CN.json"), code: "zh", region: "CN", }, "zh-TW": { - // traditional - name: "中文繁體", + // traditional chinese + name: "繁體中文", data: require("./built-temp/base-zh-TW.json"), code: "zh", region: "TW", }, - "sv": { - name: "Svenska", - data: require("./built-temp/base-sv.json"), - code: "sv", + "ja": { + // japanese + name: "日本語", + data: require("./built-temp/base-ja.json"), + code: "ja", + region: "", + }, + + "kor": { + // korean + name: "한국어", + data: require("./built-temp/base-kor.json"), + code: "kor", + region: "", + }, + + "cs": { + // czech + name: "Čeština", + data: require("./built-temp/base-cz.json"), + code: "cs", region: "", }, "da": { + // danish name: "Dansk", data: require("./built-temp/base-da.json"), code: "da", region: "", }, + "de": { + // german + name: "Deutsch", + data: require("./built-temp/base-de.json"), + code: "de", + region: "", + }, + + "es-419": { + // spanish + name: "Español", + data: require("./built-temp/base-es.json"), + code: "es", + region: "", + }, + + "fr": { + // french + name: "Français", + data: require("./built-temp/base-fr.json"), + code: "fr", + region: "", + }, + + "it": { + // italian + name: "Italiano", + data: require("./built-temp/base-it.json"), + code: "it", + region: "", + }, + "hu": { + // hungarian name: "Magyar", data: require("./built-temp/base-hu.json"), code: "hu", region: "", }, + + "nl": { + // dutch + name: "Nederlands", + data: require("./built-temp/base-nl.json"), + code: "nl", + region: "", + }, + + "no": { + // norwegian + name: "Norsk", + data: require("./built-temp/base-no.json"), + code: "no", + region: "", + }, + + "pl": { + // polish + name: "Polski", + data: require("./built-temp/base-pl.json"), + code: "pl", + region: "", + }, + + "pt-PT": { + // portuguese + name: "Português", + data: require("./built-temp/base-pt-PT.json"), + code: "pt", + region: "PT", + }, + + "pt-BR": { + // portuguese - brazil + name: "Português - Brasil", + data: require("./built-temp/base-pt-BR.json"), + code: "pt", + region: "BR", + }, + + "ro": { + // romanian + name: "Română", + data: require("./built-temp/base-ro.json"), + code: "pt", + region: "BR", + }, + + "ru": { + // russian + name: "Русский", + data: require("./built-temp/base-ru.json"), + code: "ru", + region: "", + }, + + "fi": { + // finish + name: "Suomi", + data: require("./built-temp/base-fi.json"), + code: "fi", + region: "", + }, + + "sv": { + // swedish + name: "Svenska", + data: require("./built-temp/base-sv.json"), + code: "sv", + region: "", + }, + + "tr": { + // turkish + name: "Türkçe", + data: require("./built-temp/base-tr.json"), + code: "tr", + region: "", + }, + + "uk": { + // ukrainian + name: "Українська", + data: require("./built-temp/base-uk.json"), + code: "uk", + region: "", + }, + + "he": { + // hebrew + name: "עברית", + data: require("./built-temp/base-he.json"), + code: "he", + region: "", + }, }; diff --git a/src/js/main.js b/src/js/main.js index 5b9df699..94f3d37a 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -9,6 +9,7 @@ import { initComponentRegistry } from "./game/component_registry"; import { initDrawUtils } from "./core/draw_utils"; import { initItemRegistry } from "./game/item_registry"; import { initMetaBuildingRegistry } from "./game/meta_building_registry"; +import { initGameModeRegistry } from "./game/game_mode_registry"; import { initGameSpeedRegistry } from "./game/game_speed_registry"; const logger = createLogger("main"); @@ -81,6 +82,7 @@ initDrawUtils(); initComponentRegistry(); initItemRegistry(); initMetaBuildingRegistry(); +initGameModeRegistry(); initGameSpeedRegistry(); let app = null; diff --git a/src/js/platform/achievement_provider.js b/src/js/platform/achievement_provider.js new file mode 100644 index 00000000..583dbfb2 --- /dev/null +++ b/src/js/platform/achievement_provider.js @@ -0,0 +1,642 @@ +/* typehints:start */ +import { Application } from "../application"; +import { Entity } from "../game/entity"; +import { GameRoot } from "../game/root"; +import { THEMES } from "../game/theme"; +/* typehints:end */ + +import { enumAnalyticsDataSource } from "../game/production_analytics"; +import { ShapeDefinition } from "../game/shape_definition"; +import { ShapeItem } from "../game/items/shape_item"; +import { globalConfig } from "../core/config"; + +export const ACHIEVEMENTS = { + belt500Tiles: "belt500Tiles", + blueprint100k: "blueprint100k", + blueprint1m: "blueprint1m", + completeLvl26: "completeLvl26", + cutShape: "cutShape", + darkMode: "darkMode", + destroy1000: "destroy1000", + irrelevantShape: "irrelevantShape", + level100: "level100", + level50: "level50", + logoBefore18: "logoBefore18", + mam: "mam", + mapMarkers15: "mapMarkers15", + noBeltUpgradesUntilBp: "noBeltUpgradesUntilBp", + noInverseRotater: "noInverseRotater", + oldLevel17: "oldLevel17", + openWires: "openWires", + paintShape: "paintShape", + place5000Wires: "place5000Wires", + placeBlueprint: "placeBlueprint", + placeBp1000: "placeBp1000", + play1h: "play1h", + play10h: "play10h", + play20h: "play20h", + produceLogo: "produceLogo", + produceMsLogo: "produceMsLogo", + produceRocket: "produceRocket", + rotateShape: "rotateShape", + speedrunBp30: "speedrunBp30", + speedrunBp60: "speedrunBp60", + speedrunBp120: "speedrunBp120", + stack4Layers: "stack4Layers", + stackShape: "stackShape", + store100Unique: "store100Unique", + storeShape: "storeShape", + throughputBp25: "throughputBp25", + throughputBp50: "throughputBp50", + throughputLogo25: "throughputLogo25", + throughputLogo50: "throughputLogo50", + throughputRocket10: "throughputRocket10", + throughputRocket20: "throughputRocket20", + trash1000: "trash1000", + unlockWires: "unlockWires", + upgradesTier5: "upgradesTier5", + upgradesTier8: "upgradesTier8", +}; + +/** @type {keyof typeof THEMES} */ +const DARK_MODE = "dark"; + +const HOUR_1 = 3600; // Seconds +const HOUR_10 = HOUR_1 * 10; +const HOUR_20 = HOUR_1 * 20; +const ITEM_SHAPE = ShapeItem.getId(); +const MINUTE_30 = 1800; // Seconds +const MINUTE_60 = MINUTE_30 * 2; +const MINUTE_120 = MINUTE_30 * 4; +const ROTATER_CCW_CODE = 12; +const ROTATER_180_CODE = 13; +const SHAPE_BP = "CbCbCbRb:CwCwCwCw"; +const SHAPE_LOGO = "RuCw--Cw:----Ru--"; +const SHAPE_MS_LOGO = "RgRyRbRr"; +const SHAPE_OLD_LEVEL_17 = "WrRgWrRg:CwCrCwCr:SgSgSgSg"; +const SHAPE_ROCKET = "CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw"; + +/** @type {Layer} */ +const WIRE_LAYER = "wires"; + +export class AchievementProviderInterface { + /* typehints:start */ + collection = /** @type {AchievementCollection|undefined} */ (null); + /* typehints:end */ + + /** @param {Application} app */ + constructor(app) { + this.app = app; + } + + /** + * Initializes the achievement provider. + * @returns {Promise} + */ + initialize() { + abstract; + return Promise.reject(); + } + + /** + * Opportunity to do additional initialization work with the GameRoot. + * @param {GameRoot} root + * @returns {Promise} + */ + onLoad(root) { + abstract; + return Promise.reject(); + } + + /** @returns {boolean} */ + hasLoaded() { + abstract; + return false; + } + + /** + * Call to activate an achievement with the provider + * @param {string} key - Maps to an Achievement + * @returns {Promise} + */ + activate(key) { + abstract; + return Promise.reject(); + } + + /** + * Checks if achievements are supported in the current build + * @returns {boolean} + */ + hasAchievements() { + abstract; + return false; + } +} + +export class Achievement { + /** @param {string} key - An ACHIEVEMENTS key */ + constructor(key) { + this.key = key; + this.activate = null; + this.activatePromise = null; + this.receiver = null; + this.signal = null; + } + + init() {} + + isValid() { + return true; + } + + unlock() { + if (!this.activatePromise) { + this.activatePromise = this.activate(this.key); + } + + return this.activatePromise; + } +} + +export class AchievementCollection { + /** + * @param {function} activate - Resolves when provider activation is complete + */ + constructor(activate) { + this.map = new Map(); + this.activate = activate; + + this.add(ACHIEVEMENTS.belt500Tiles, { + isValid: this.isBelt500TilesValid, + signal: "entityAdded", + }); + this.add(ACHIEVEMENTS.blueprint100k, this.createBlueprintOptions(100000)); + this.add(ACHIEVEMENTS.blueprint1m, this.createBlueprintOptions(1000000)); + this.add(ACHIEVEMENTS.completeLvl26, this.createLevelOptions(26)); + this.add(ACHIEVEMENTS.cutShape); + this.add(ACHIEVEMENTS.darkMode, { + isValid: this.isDarkModeValid, + }); + this.add(ACHIEVEMENTS.destroy1000, { + isValid: this.isDestroy1000Valid, + }); + this.add(ACHIEVEMENTS.irrelevantShape, { + isValid: this.isIrrelevantShapeValid, + signal: "shapeDelivered", + }); + this.add(ACHIEVEMENTS.level100, this.createLevelOptions(100)); + this.add(ACHIEVEMENTS.level50, this.createLevelOptions(50)); + this.add(ACHIEVEMENTS.logoBefore18, { + isValid: this.isLogoBefore18Valid, + signal: "itemProduced", + }); + this.add(ACHIEVEMENTS.mam, { + isValid: this.isMamValid, + }); + this.add(ACHIEVEMENTS.mapMarkers15, { + isValid: this.isMapMarkers15Valid, + }); + this.add(ACHIEVEMENTS.noBeltUpgradesUntilBp, { + isValid: this.isNoBeltUpgradesUntilBpValid, + signal: "storyGoalCompleted", + }); + this.add(ACHIEVEMENTS.noInverseRotater, { + init: this.initNoInverseRotater, + isValid: this.isNoInverseRotaterValid, + signal: "storyGoalCompleted", + }); + this.add(ACHIEVEMENTS.oldLevel17, this.createShapeOptions(SHAPE_OLD_LEVEL_17)); + this.add(ACHIEVEMENTS.openWires, { + isValid: this.isOpenWiresValid, + signal: "editModeChanged", + }); + this.add(ACHIEVEMENTS.paintShape); + this.add(ACHIEVEMENTS.place5000Wires, { + isValid: this.isPlace5000WiresValid, + }); + this.add(ACHIEVEMENTS.placeBlueprint, { + isValid: this.isPlaceBlueprintValid, + }); + this.add(ACHIEVEMENTS.placeBp1000, { + isValid: this.isPlaceBp1000Valid, + }); + this.add(ACHIEVEMENTS.play1h, this.createTimeOptions(HOUR_1)); + this.add(ACHIEVEMENTS.play10h, this.createTimeOptions(HOUR_10)); + this.add(ACHIEVEMENTS.play20h, this.createTimeOptions(HOUR_20)); + this.add(ACHIEVEMENTS.produceLogo, this.createShapeOptions(SHAPE_LOGO)); + this.add(ACHIEVEMENTS.produceRocket, this.createShapeOptions(SHAPE_ROCKET)); + this.add(ACHIEVEMENTS.produceMsLogo, this.createShapeOptions(SHAPE_MS_LOGO)); + this.add(ACHIEVEMENTS.rotateShape); + this.add(ACHIEVEMENTS.speedrunBp30, this.createSpeedOptions(12, MINUTE_30)); + this.add(ACHIEVEMENTS.speedrunBp60, this.createSpeedOptions(12, MINUTE_60)); + this.add(ACHIEVEMENTS.speedrunBp120, this.createSpeedOptions(12, MINUTE_120)); + this.add(ACHIEVEMENTS.stack4Layers, { + isValid: this.isStack4LayersValid, + signal: "itemProduced", + }); + this.add(ACHIEVEMENTS.stackShape); + this.add(ACHIEVEMENTS.store100Unique, { + init: this.initStore100Unique, + isValid: this.isStore100UniqueValid, + signal: "shapeDelivered", + }); + this.add(ACHIEVEMENTS.storeShape, { + init: this.initStoreShape, + isValid: this.isStoreShapeValid, + }); + this.add(ACHIEVEMENTS.throughputBp25, this.createRateOptions(SHAPE_BP, 25)); + this.add(ACHIEVEMENTS.throughputBp50, this.createRateOptions(SHAPE_BP, 50)); + this.add(ACHIEVEMENTS.throughputLogo25, this.createRateOptions(SHAPE_LOGO, 25)); + this.add(ACHIEVEMENTS.throughputLogo50, this.createRateOptions(SHAPE_LOGO, 50)); + this.add(ACHIEVEMENTS.throughputRocket10, this.createRateOptions(SHAPE_ROCKET, 10)); + this.add(ACHIEVEMENTS.throughputRocket20, this.createRateOptions(SHAPE_ROCKET, 20)); + this.add(ACHIEVEMENTS.trash1000, { + init: this.initTrash1000, + isValid: this.isTrash1000Valid, + }); + this.add(ACHIEVEMENTS.unlockWires, this.createLevelOptions(20)); + this.add(ACHIEVEMENTS.upgradesTier5, this.createUpgradeOptions(5)); + this.add(ACHIEVEMENTS.upgradesTier8, this.createUpgradeOptions(8)); + } + + /** @param {GameRoot} root */ + initialize(root) { + this.root = root; + this.root.signals.achievementCheck.add(this.unlock, this); + this.root.signals.bulkAchievementCheck.add(this.bulkUnlock, this); + + for (let [key, achievement] of this.map.entries()) { + if (achievement.signal) { + achievement.receiver = this.unlock.bind(this, key); + this.root.signals[achievement.signal].add(achievement.receiver); + } + + if (achievement.init) { + achievement.init(); + } + } + + if (!this.hasDefaultReceivers()) { + this.root.signals.achievementCheck.remove(this.unlock); + this.root.signals.bulkAchievementCheck.remove(this.bulkUnlock); + } + } + + /** + * @param {string} key - Maps to an Achievement + * @param {object} [options] + * @param {function} [options.init] + * @param {function} [options.isValid] + * @param {string} [options.signal] + */ + add(key, options = {}) { + if (G_IS_DEV) { + assert(ACHIEVEMENTS[key], "Achievement key not found: ", key); + } + + const achievement = new Achievement(key); + + achievement.activate = this.activate; + + if (options.init) { + achievement.init = options.init.bind(this, achievement); + } + + if (options.isValid) { + achievement.isValid = options.isValid.bind(this); + } + + if (options.signal) { + achievement.signal = options.signal; + } + + this.map.set(key, achievement); + } + + bulkUnlock() { + for (let i = 0; i < arguments.length; i += 2) { + this.unlock(arguments[i], arguments[i + 1]); + } + } + + /** + * @param {string} key - Maps to an Achievement + * @param {any} data - Data received from signal dispatches for validation + */ + unlock(key, data) { + if (!this.map.has(key)) { + return; + } + + const achievement = this.map.get(key); + + if (!achievement.isValid(data)) { + return; + } + + achievement + .unlock() + .then(() => { + this.onActivate(null, key); + }) + .catch(err => { + this.onActivate(err, key); + }); + } + + /** + * Cleans up after achievement activation attempt with the provider. Could + * utilize err to retry some number of times if needed. + * @param {?Error} err - Error is null if activation was successful + * @param {string} key - Maps to an Achievement + */ + onActivate(err, key) { + this.remove(key); + + if (!this.hasDefaultReceivers()) { + this.root.signals.achievementCheck.remove(this.unlock); + } + } + + /** @param {string} key - Maps to an Achievement */ + remove(key) { + const achievement = this.map.get(key); + if (achievement) { + if (achievement.receiver) { + this.root.signals[achievement.signal].remove(achievement.receiver); + } + + this.map.delete(key); + } + } + + /** + * Check if the collection-level achievementCheck receivers are still + * necessary. + */ + hasDefaultReceivers() { + if (!this.map.size) { + return false; + } + + for (let achievement of this.map.values()) { + if (!achievement.signal) { + return true; + } + } + + return false; + } + + /* + * Remaining methods exist to extend Achievement instances within the + * collection. + */ + + hasAllUpgradesAtLeastAtTier(tier) { + const upgrades = this.root.gameMode.getUpgrades(); + + for (let upgradeId in upgrades) { + if (this.root.hubGoals.getUpgradeLevel(upgradeId) < tier - 1) { + return false; + } + } + + return true; + } + + /** + * @param {ShapeItem} item + * @param {string} shape + * @returns {boolean} + */ + isShape(item, shape) { + return item.getItemType() === ITEM_SHAPE && item.definition.getHash() === shape; + } + + createBlueprintOptions(count) { + return { + init: ({ key }) => this.unlock(key, ShapeDefinition.fromShortKey(SHAPE_BP)), + isValid: definition => + definition.cachedHash === SHAPE_BP && this.root.hubGoals.storedShapes[SHAPE_BP] >= count, + signal: "shapeDelivered", + }; + } + + createLevelOptions(level) { + return { + init: ({ key }) => this.unlock(key, this.root.hubGoals.level), + isValid: currentLevel => currentLevel > level, + signal: "storyGoalCompleted", + }; + } + + createRateOptions(shape, rate) { + return { + isValid: () => { + return ( + this.root.productionAnalytics.getCurrentShapeRateRaw( + enumAnalyticsDataSource.delivered, + this.root.shapeDefinitionMgr.getShapeFromShortKey(shape) + ) / + globalConfig.analyticsSliceDurationSeconds >= + rate + ); + }, + }; + } + + createShapeOptions(shape) { + return { + isValid: item => this.isShape(item, shape), + signal: "itemProduced", + }; + } + + createSpeedOptions(level, time) { + return { + isValid: currentLevel => currentLevel >= level && this.root.time.now() < time, + signal: "storyGoalCompleted", + }; + } + + createTimeOptions(duration) { + return { + isValid: () => this.root.time.now() >= duration, + }; + } + + createUpgradeOptions(tier) { + return { + init: ({ key }) => this.unlock(key, null), + isValid: () => this.hasAllUpgradesAtLeastAtTier(tier), + signal: "upgradePurchased", + }; + } + + /** @param {Entity} entity @returns {boolean} */ + isBelt500TilesValid(entity) { + return entity.components.Belt && entity.components.Belt.assignedPath.totalLength >= 500; + } + + /** @returns {boolean} */ + isDarkModeValid() { + return this.root.app.settings.currentData.settings.theme === DARK_MODE; + } + + /** @param {number} count @returns {boolean} */ + isDestroy1000Valid(count) { + return count >= 1000; + } + + /** @param {ShapeDefinition} definition @returns {boolean} */ + isIrrelevantShapeValid(definition) { + const levels = this.root.gameMode.getLevelDefinitions(); + for (let i = 0; i < levels.length; i++) { + if (definition.cachedHash === levels[i].shape) { + return false; + } + } + + const upgrades = this.root.gameMode.getUpgrades(); + for (let upgradeId in upgrades) { + for (const tier in upgrades[upgradeId]) { + const requiredShapes = upgrades[upgradeId][tier].required; + for (let i = 0; i < requiredShapes.length; i++) { + if (definition.cachedHash === requiredShapes[i].shape) { + return false; + } + } + } + } + + return true; + } + + /** @param {ShapeItem} item @returns {boolean} */ + isLogoBefore18Valid(item) { + return this.root.hubGoals.level < 18 && this.isShape(item, SHAPE_LOGO); + } + + /** @returns {boolean} */ + isMamValid() { + return this.root.hubGoals.level > 27 && !this.root.savegame.currentData.stats.failedMam; + } + + /** @param {number} count @returns {boolean} */ + isMapMarkers15Valid(count) { + return count >= 15; + } + + /** + * @param {number} level + * @returns {boolean} + */ + isNoBeltUpgradesUntilBpValid(level) { + return level >= 12 && this.root.hubGoals.upgradeLevels.belt === 0; + } + + initNoInverseRotater() { + if (this.root.savegame.currentData.stats.usedInverseRotater === true) { + return; + } + + const entities = this.root.entityMgr.componentToEntity.StaticMapEntity; + + let usedInverseRotater = false; + for (var i = 0; i < entities.length; i++) { + const entity = entities[i].components.StaticMapEntity; + + if (entity.code === ROTATER_CCW_CODE || entity.code === ROTATER_180_CODE) { + usedInverseRotater = true; + break; + } + } + + this.root.savegame.currentData.stats.usedInverseRotater = usedInverseRotater; + } + + /** @param {number} level @returns {boolean} */ + isNoInverseRotaterValid(level) { + return level >= 14 && !this.root.savegame.currentData.stats.usedInverseRotater; + } + + /** @param {string} currentLayer @returns {boolean} */ + isOpenWiresValid(currentLayer) { + return currentLayer === WIRE_LAYER; + } + + /** @param {Entity} entity @returns {boolean} */ + isPlace5000WiresValid(entity) { + return ( + entity.components.Wire && + entity.registered && + entity.root.entityMgr.componentToEntity.Wire.length >= 5000 + ); + } + + /** @param {number} count @returns {boolean} */ + isPlaceBlueprintValid(count) { + return count != 0; + } + + /** @param {number} count @returns {boolean} */ + isPlaceBp1000Valid(count) { + return count >= 1000; + } + + /** @param {ShapeItem} item @returns {boolean} */ + isStack4LayersValid(item) { + return item.getItemType() === ITEM_SHAPE && item.definition.layers.length === 4; + } + + /** @param {Achievement} achievement */ + initStore100Unique({ key }) { + this.unlock(key, null); + } + + /** @returns {boolean} */ + isStore100UniqueValid() { + return Object.keys(this.root.hubGoals.storedShapes).length >= 100; + } + + /** @param {Achievement} achievement */ + initStoreShape({ key }) { + this.unlock(key, null); + } + + /** @returns {boolean} */ + isStoreShapeValid() { + const entities = this.root.systemMgr.systems.storage.allEntities; + + if (entities.length === 0) { + return false; + } + + for (var i = 0; i < entities.length; i++) { + if (entities[i].components.Storage.storedCount > 0) { + return true; + } + } + + return false; + } + + /** @param {Achievement} achievement */ + initTrash1000({ key }) { + if (Number(this.root.savegame.currentData.stats.trashedCount)) { + this.unlock(key, 0); + return; + } + + this.root.savegame.currentData.stats.trashedCount = 0; + } + + /** @param {number} count @returns {boolean} */ + isTrash1000Valid(count) { + this.root.savegame.currentData.stats.trashedCount += count; + + return this.root.savegame.currentData.stats.trashedCount >= 1000; + } +} diff --git a/src/js/platform/ad_providers/gamedistribution.js b/src/js/platform/ad_providers/gamedistribution.js index 6ff031f0..5a91646f 100644 --- a/src/js/platform/ad_providers/gamedistribution.js +++ b/src/js/platform/ad_providers/gamedistribution.js @@ -95,6 +95,10 @@ export class GamedistributionAdProvider extends AdProviderInterface { document.body.classList.add("externalAdOpen"); + logger.log("Set sound volume to 0"); + this.app.sound.setMusicVolume(0); + this.app.sound.setSoundVolume(0); + return new Promise(resolve => { // So, wait for the remove call but also remove after N seconds this.videoAdResolveFunction = () => { @@ -119,6 +123,11 @@ export class GamedistributionAdProvider extends AdProviderInterface { }) .then(() => { document.body.classList.remove("externalAdOpen"); + + logger.log("Restored sound volume"); + + this.app.sound.setMusicVolume(this.app.settings.getSetting("musicVolume")); + this.app.sound.setSoundVolume(this.app.settings.getSetting("soundVolume")); }); } } diff --git a/src/js/platform/api.js b/src/js/platform/api.js new file mode 100644 index 00000000..d518c98a --- /dev/null +++ b/src/js/platform/api.js @@ -0,0 +1,246 @@ +/* typehints:start */ +import { Application } from "../application"; +/* typehints:end */ +import { createLogger } from "../core/logging"; +import { compressX64 } from "../core/lzstring"; +import { getIPCRenderer } from "../core/utils"; +import { T } from "../translations"; + +const logger = createLogger("puzzle-api"); + +export class ClientAPI { + /** + * + * @param {Application} app + */ + constructor(app) { + this.app = app; + + /** + * The current users session token + * @type {string|null} + */ + this.token = null; + } + + getEndpoint() { + if (G_IS_DEV) { + return "http://localhost:15001"; + } + if (window.location.host === "beta.shapez.io") { + return "https://api-staging.shapez.io"; + } + return "https://api.shapez.io"; + } + + isLoggedIn() { + return Boolean(this.token); + } + + /** + * + * @param {string} endpoint + * @param {object} options + * @param {"GET"|"POST"=} options.method + * @param {any=} options.body + */ + _request(endpoint, options) { + const headers = { + "x-api-key": "d5c54aaa491f200709afff082c153ef2", + "Content-Type": "application/json", + }; + + if (this.token) { + headers["x-token"] = this.token; + } + + return Promise.race([ + fetch(this.getEndpoint() + endpoint, { + cache: "no-cache", + mode: "cors", + headers, + method: options.method || "GET", + body: options.body ? JSON.stringify(options.body) : undefined, + }) + .then(res => { + if (res.status !== 200) { + throw "bad-status: " + res.status + " / " + res.statusText; + } + return res; + }) + .then(res => res.json()), + new Promise((resolve, reject) => setTimeout(() => reject("timeout"), 15000)), + ]) + .then(data => { + if (data && data.error) { + logger.warn("Got error from api:", data); + throw T.backendErrors[data.error] || data.error; + } + return data; + }) + .catch(err => { + logger.warn("Failure:", endpoint, ":", err); + throw err; + }); + } + + tryLogin() { + return this.apiTryLogin() + .then(({ token }) => { + this.token = token; + return true; + }) + .catch(err => { + logger.warn("Failed to login:", err); + return false; + }); + } + + /** + * @returns {Promise<{token: string}>} + */ + apiTryLogin() { + if (!G_IS_STANDALONE) { + let token = window.localStorage.getItem("dev_api_auth_token"); + if (!token) { + token = window.prompt( + "Please enter the auth token for the puzzle DLC (If you have none, you can't login):" + ); + } + if (token) { + window.localStorage.setItem("dev_api_auth_token", token); + } + return Promise.resolve({ token }); + } + + const renderer = getIPCRenderer(); + + return renderer.invoke("steam:get-ticket").then( + ticket => { + logger.log("Got auth ticket:", ticket); + return this._request("/v1/public/login", { + method: "POST", + body: { + token: ticket, + }, + }); + }, + err => { + logger.error("Failed to get auth ticket from steam: ", err); + throw err; + } + ); + } + + /** + * @param {"new"|"top-rated"|"mine"} category + * @returns {Promise} + */ + apiListPuzzles(category) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/list/" + category, {}); + } + + /** + * @param {{ searchTerm: string; difficulty: string; duration: string }} searchOptions + * @returns {Promise} + */ + apiSearchPuzzles(searchOptions) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/search", { + method: "POST", + body: searchOptions, + }); + } + + /** + * @param {number} puzzleId + * @returns {Promise} + */ + apiDownloadPuzzle(puzzleId) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/download/" + puzzleId, {}); + } + + /** + * @param {number} puzzleId + * @returns {Promise} + */ + apiDeletePuzzle(puzzleId) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/delete/" + puzzleId, { + method: "POST", + body: {}, + }); + } + + /** + * @param {string} shortKey + * @returns {Promise} + */ + apiDownloadPuzzleByKey(shortKey) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/download/" + shortKey, {}); + } + + /** + * @param {number} puzzleId + * @returns {Promise} + */ + apiReportPuzzle(puzzleId, reason) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/report/" + puzzleId, { + method: "POST", + body: { reason }, + }); + } + + /** + * @param {number} puzzleId + * @param {object} payload + * @param {number} payload.time + * @param {boolean} payload.liked + * @returns {Promise<{ success: true }>} + */ + apiCompletePuzzle(puzzleId, payload) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/complete/" + puzzleId, { + method: "POST", + body: payload, + }); + } + + /** + * @param {object} payload + * @param {string} payload.title + * @param {string} payload.shortKey + * @param {import("../savegame/savegame_typedefs").PuzzleGameData} payload.data + * @returns {Promise<{ success: true }>} + */ + apiSubmitPuzzle(payload) { + if (!this.isLoggedIn()) { + return Promise.reject("not-logged-in"); + } + return this._request("/v1/puzzles/submit", { + method: "POST", + body: { + ...payload, + data: compressX64(JSON.stringify(payload.data)), + }, + }); + } +} diff --git a/src/js/platform/browser/game_analytics.js b/src/js/platform/browser/game_analytics.js index a3947be6..9411b258 100644 --- a/src/js/platform/browser/game_analytics.js +++ b/src/js/platform/browser/game_analytics.js @@ -3,6 +3,7 @@ import { createLogger } from "../../core/logging"; import { queryParamOptions } from "../../core/query_parameters"; import { BeltComponent } from "../../game/components/belt"; import { StaticMapEntityComponent } from "../../game/components/static_map_entity"; +import { RegularGameMode } from "../../game/modes/regular"; import { GameRoot } from "../../game/root"; import { InGameState } from "../../states/ingame"; import { GameAnalyticsInterface } from "../game_analytics"; @@ -52,6 +53,10 @@ export class ShapezGameAnalytics extends GameAnalyticsInterface { initialize() { this.syncKey = null; + if (G_WEGAME_VERSION) { + return; + } + setInterval(() => this.sendTimePoints(), 60 * 1000); // Retrieve sync key from player @@ -90,6 +95,15 @@ export class ShapezGameAnalytics extends GameAnalyticsInterface { ); } + /** + * Makes sure a DLC is activated on steam + * @param {string} dlc + */ + activateDlc(dlc) { + logger.log("Activating dlc:", dlc); + return this.sendToApi("/v1/activate-dlc/" + dlc, {}); + } + /** * Sends a request to the api * @param {string} endpoint Endpoint without base url @@ -97,6 +111,10 @@ export class ShapezGameAnalytics extends GameAnalyticsInterface { * @returns {Promise} */ sendToApi(endpoint, data) { + if (G_WEGAME_VERSION) { + return Promise.resolve(); + } + return new Promise((resolve, reject) => { const timeout = setTimeout(() => reject("Request to " + endpoint + " timed out"), 20000); @@ -135,6 +153,10 @@ export class ShapezGameAnalytics extends GameAnalyticsInterface { * @param {string} value */ sendGameEvent(category, value) { + if (G_WEGAME_VERSION) { + return; + } + if (!this.syncKey) { logger.warn("Can not send event due to missing sync key"); return; @@ -163,6 +185,10 @@ export class ShapezGameAnalytics extends GameAnalyticsInterface { return; } + if (!(root.gameMode instanceof RegularGameMode)) { + return; + } + logger.log("Sending event", category, value); this.sendToApi("/v1/game-event", { diff --git a/src/js/platform/browser/no_achievement_provider.js b/src/js/platform/browser/no_achievement_provider.js new file mode 100644 index 00000000..8a8a343e --- /dev/null +++ b/src/js/platform/browser/no_achievement_provider.js @@ -0,0 +1,23 @@ +import { AchievementProviderInterface } from "../achievement_provider"; + +export class NoAchievementProvider extends AchievementProviderInterface { + hasAchievements() { + return false; + } + + hasLoaded() { + return false; + } + + initialize() { + return Promise.resolve(); + } + + onLoad() { + return Promise.reject(new Error("No achievements to load")); + } + + activate() { + return Promise.resolve(); + } +} diff --git a/src/js/platform/browser/storage.js b/src/js/platform/browser/storage.js index 2a399e54..ac0fa4ca 100644 --- a/src/js/platform/browser/storage.js +++ b/src/js/platform/browser/storage.js @@ -58,11 +58,6 @@ export class StorageImplBrowser extends StorageInterface { }); } - writeFileSyncIfSupported(filename, contents) { - window.localStorage.setItem(filename, contents); - return true; - } - readFileAsync(filename) { if (this.currentBusyFilename === filename) { logger.warn("Attempt to read", filename, "while write progress on it is ongoing!"); diff --git a/src/js/platform/browser/storage_indexed_db.js b/src/js/platform/browser/storage_indexed_db.js index 0c1dbe4f..1028eed3 100644 --- a/src/js/platform/browser/storage_indexed_db.js +++ b/src/js/platform/browser/storage_indexed_db.js @@ -94,12 +94,6 @@ export class StorageImplBrowserIndexedDB extends StorageInterface { }); } - writeFileSyncIfSupported(filename, contents) { - // Not supported - this.writeFileAsync(filename, contents); - return true; - } - readFileAsync(filename) { if (!this.database) { return Promise.reject("Storage not ready"); diff --git a/src/js/platform/browser/wrapper.js b/src/js/platform/browser/wrapper.js index 232a743b..3610b533 100644 --- a/src/js/platform/browser/wrapper.js +++ b/src/js/platform/browser/wrapper.js @@ -4,7 +4,9 @@ import { queryParamOptions } from "../../core/query_parameters"; import { clamp } from "../../core/utils"; import { GamedistributionAdProvider } from "../ad_providers/gamedistribution"; import { NoAdProvider } from "../ad_providers/no_ad_provider"; +import { SteamAchievementProvider } from "../electron/steam_achievement_provider"; import { PlatformWrapperInterface } from "../wrapper"; +import { NoAchievementProvider } from "./no_achievement_provider"; import { StorageImplBrowser } from "./storage"; import { StorageImplBrowserIndexedDB } from "./storage_indexed_db"; @@ -71,6 +73,7 @@ export class PlatformWrapperImplBrowser extends PlatformWrapperInterface { return this.detectStorageImplementation() .then(() => this.initializeAdProvider()) + .then(() => this.initializeAchievementProvider()) .then(() => super.initialize()); } @@ -132,15 +135,7 @@ export class PlatformWrapperImplBrowser extends PlatformWrapperInterface { openExternalLink(url, force = false) { logger.log("Opening external:", url); - if (force || this.embedProvider.externalLinks) { - window.open(url); - } else { - // Do nothing - alert( - "This platform does not allow opening external links. You can play on https://shapez.io directly to open them.\n\nClicked Link: " + - url - ); - } + window.open(url); } performRestart() { @@ -196,6 +191,20 @@ export class PlatformWrapperImplBrowser extends PlatformWrapperInterface { }); } + initializeAchievementProvider() { + if (G_IS_DEV && globalConfig.debug.testAchievements) { + this.app.achievementProvider = new SteamAchievementProvider(this.app); + + return this.app.achievementProvider.initialize().catch(err => { + logger.error("Failed to initialize achievement provider, disabling:", err); + + this.app.achievementProvider = new NoAchievementProvider(this.app); + }); + } + + return this.app.achievementProvider.initialize(); + } + exitApp() { // Can not exit app } diff --git a/src/js/platform/electron/steam_achievement_provider.js b/src/js/platform/electron/steam_achievement_provider.js new file mode 100644 index 00000000..c0ef552c --- /dev/null +++ b/src/js/platform/electron/steam_achievement_provider.js @@ -0,0 +1,151 @@ +/* typehints:start */ +import { Application } from "../../application"; +import { GameRoot } from "../../game/root"; +/* typehints:end */ + +import { createLogger } from "../../core/logging"; +import { getIPCRenderer } from "../../core/utils"; +import { ACHIEVEMENTS, AchievementCollection, AchievementProviderInterface } from "../achievement_provider"; + +const logger = createLogger("achievements/steam"); + +const ACHIEVEMENT_IDS = { + [ACHIEVEMENTS.belt500Tiles]: "belt_500_tiles", + [ACHIEVEMENTS.blueprint100k]: "blueprint_100k", + [ACHIEVEMENTS.blueprint1m]: "blueprint_1m", + [ACHIEVEMENTS.completeLvl26]: "complete_lvl_26", + [ACHIEVEMENTS.cutShape]: "cut_shape", + [ACHIEVEMENTS.darkMode]: "dark_mode", + [ACHIEVEMENTS.destroy1000]: "destroy_1000", + [ACHIEVEMENTS.irrelevantShape]: "irrelevant_shape", + [ACHIEVEMENTS.level100]: "level_100", + [ACHIEVEMENTS.level50]: "level_50", + [ACHIEVEMENTS.logoBefore18]: "logo_before_18", + [ACHIEVEMENTS.mam]: "mam", + [ACHIEVEMENTS.mapMarkers15]: "map_markers_15", + [ACHIEVEMENTS.openWires]: "open_wires", + [ACHIEVEMENTS.oldLevel17]: "old_level_17", + [ACHIEVEMENTS.noBeltUpgradesUntilBp]: "no_belt_upgrades_until_bp", + [ACHIEVEMENTS.noInverseRotater]: "no_inverse_rotator", // [sic] + [ACHIEVEMENTS.paintShape]: "paint_shape", + [ACHIEVEMENTS.place5000Wires]: "place_5000_wires", + [ACHIEVEMENTS.placeBlueprint]: "place_blueprint", + [ACHIEVEMENTS.placeBp1000]: "place_bp_1000", + [ACHIEVEMENTS.play1h]: "play_1h", + [ACHIEVEMENTS.play10h]: "play_10h", + [ACHIEVEMENTS.play20h]: "play_20h", + [ACHIEVEMENTS.produceLogo]: "produce_logo", + [ACHIEVEMENTS.produceMsLogo]: "produce_ms_logo", + [ACHIEVEMENTS.produceRocket]: "produce_rocket", + [ACHIEVEMENTS.rotateShape]: "rotate_shape", + [ACHIEVEMENTS.speedrunBp30]: "speedrun_bp_30", + [ACHIEVEMENTS.speedrunBp60]: "speedrun_bp_60", + [ACHIEVEMENTS.speedrunBp120]: "speedrun_bp_120", + [ACHIEVEMENTS.stack4Layers]: "stack_4_layers", + [ACHIEVEMENTS.stackShape]: "stack_shape", + [ACHIEVEMENTS.store100Unique]: "store_100_unique", + [ACHIEVEMENTS.storeShape]: "store_shape", + [ACHIEVEMENTS.throughputBp25]: "throughput_bp_25", + [ACHIEVEMENTS.throughputBp50]: "throughput_bp_50", + [ACHIEVEMENTS.throughputLogo25]: "throughput_logo_25", + [ACHIEVEMENTS.throughputLogo50]: "throughput_logo_50", + [ACHIEVEMENTS.throughputRocket10]: "throughput_rocket_10", + [ACHIEVEMENTS.throughputRocket20]: "throughput_rocket_20", + [ACHIEVEMENTS.trash1000]: "trash_1000", + [ACHIEVEMENTS.unlockWires]: "unlock_wires", + [ACHIEVEMENTS.upgradesTier5]: "upgrades_tier_5", + [ACHIEVEMENTS.upgradesTier8]: "upgrades_tier_8", +}; + +export class SteamAchievementProvider extends AchievementProviderInterface { + /** @param {Application} app */ + constructor(app) { + super(app); + + this.initialized = false; + this.collection = new AchievementCollection(this.activate.bind(this)); + + if (G_IS_DEV) { + for (let key in ACHIEVEMENT_IDS) { + assert(this.collection.map.has(key), "Key not found in collection: " + key); + } + } + + logger.log("Collection created with", this.collection.map.size, "achievements"); + } + + /** @returns {boolean} */ + hasAchievements() { + return true; + } + + /** + * @param {GameRoot} root + * @returns {Promise} + */ + onLoad(root) { + this.root = root; + + try { + this.collection = new AchievementCollection(this.activate.bind(this)); + this.collection.initialize(root); + + logger.log("Initialized", this.collection.map.size, "relevant achievements"); + return Promise.resolve(); + } catch (err) { + logger.error("Failed to initialize the collection"); + return Promise.reject(err); + } + } + + /** @returns {Promise} */ + initialize() { + if (!G_IS_STANDALONE) { + logger.warn("Steam unavailable. Achievements won't sync."); + return Promise.resolve(); + } + + if (G_WEGAME_VERSION) { + return Promise.resolve(); + } + + this.ipc = getIPCRenderer(); + + return this.ipc.invoke("steam:is-initialized").then(initialized => { + this.initialized = initialized; + + if (!this.initialized) { + logger.warn("Steam failed to intialize. Achievements won't sync."); + } else { + logger.log("Steam achievement provider initialized"); + } + }); + } + + /** + * @param {string} key + * @returns {Promise} + */ + activate(key) { + let promise; + + if (G_WEGAME_VERSION) { + return Promise.resolve(); + } + + if (!this.initialized) { + promise = Promise.resolve(); + } else { + promise = this.ipc.invoke("steam:activate-achievement", ACHIEVEMENT_IDS[key]); + } + + return promise + .then(() => { + logger.log("Achievement activated:", key); + }) + .catch(err => { + logger.error("Failed to activate achievement:", key, err); + throw err; + }); + } +} diff --git a/src/js/platform/electron/storage.js b/src/js/platform/electron/storage.js index 7736fcb4..41ed1746 100644 --- a/src/js/platform/electron/storage.js +++ b/src/js/platform/electron/storage.js @@ -46,14 +46,6 @@ export class StorageImplElectron extends StorageInterface { }); } - writeFileSyncIfSupported(filename, contents) { - return getIPCRenderer().sendSync("fs-sync-job", { - type: "write", - filename, - contents, - }); - } - readFileAsync(filename) { return new Promise((resolve, reject) => { // ipcMain diff --git a/src/js/platform/electron/wrapper.js b/src/js/platform/electron/wrapper.js index 941aff44..c1764f68 100644 --- a/src/js/platform/electron/wrapper.js +++ b/src/js/platform/electron/wrapper.js @@ -1,15 +1,39 @@ +import { NoAchievementProvider } from "../browser/no_achievement_provider"; import { PlatformWrapperImplBrowser } from "../browser/wrapper"; import { getIPCRenderer } from "../../core/utils"; import { createLogger } from "../../core/logging"; import { StorageImplElectron } from "./storage"; +import { SteamAchievementProvider } from "./steam_achievement_provider"; import { PlatformWrapperInterface } from "../wrapper"; const logger = createLogger("electron-wrapper"); export class PlatformWrapperImplElectron extends PlatformWrapperImplBrowser { initialize() { + this.dlcs = { + puzzle: false, + }; + + this.steamOverlayCanvasFix = document.createElement("canvas"); + this.steamOverlayCanvasFix.width = 1; + this.steamOverlayCanvasFix.height = 1; + this.steamOverlayCanvasFix.id = "steamOverlayCanvasFix"; + + this.steamOverlayContextFix = this.steamOverlayCanvasFix.getContext("2d"); + document.documentElement.appendChild(this.steamOverlayCanvasFix); + + this.app.ticker.frameEmitted.add(this.steamOverlayFixRedrawCanvas, this); + this.app.storage = new StorageImplElectron(this); - return PlatformWrapperInterface.prototype.initialize.call(this); + this.app.achievementProvider = new SteamAchievementProvider(this.app); + + return this.initializeAchievementProvider() + .then(() => this.initializeDlcStatus()) + .then(() => PlatformWrapperInterface.prototype.initialize.call(this)); + } + + steamOverlayFixRedrawCanvas() { + this.steamOverlayContextFix.clearRect(0, 0, 1, 1); } getId() { @@ -38,6 +62,45 @@ export class PlatformWrapperImplElectron extends PlatformWrapperImplBrowser { return Promise.resolve(); } + initializeAchievementProvider() { + return this.app.achievementProvider.initialize().catch(err => { + logger.error("Failed to initialize achievement provider, disabling:", err); + + this.app.achievementProvider = new NoAchievementProvider(this.app); + }); + } + + initializeDlcStatus() { + const renderer = getIPCRenderer(); + + if (G_WEGAME_VERSION) { + return Promise.resolve(); + } + + logger.log("Checking DLC ownership ..."); + // @todo: Don't hardcode the app id + return renderer.invoke("steam:check-app-ownership", 1625400).then( + res => { + logger.log("Got DLC ownership:", res); + this.dlcs.puzzle = Boolean(res); + + if (this.dlcs.puzzle && !G_IS_DEV) { + this.app.gameAnalytics.activateDlc("puzzle").then( + () => { + logger.log("Puzzle DLC successfully activated"); + }, + error => { + logger.error("Failed to activate puzzle DLC:", error); + } + ); + } + }, + err => { + logger.error("Failed to get DLC ownership:", err); + } + ); + } + getSupportsFullscreen() { return true; } diff --git a/src/js/platform/game_analytics.js b/src/js/platform/game_analytics.js index 765b2d67..00286fc2 100644 --- a/src/js/platform/game_analytics.js +++ b/src/js/platform/game_analytics.js @@ -39,4 +39,13 @@ export class GameAnalyticsInterface { * @param {number} level */ handleUpgradeUnlocked(id, level) {} + + /** + * Activates a DLC + * @param {string} dlc + */ + activateDlc(dlc) { + abstract; + return Promise.resolve(); + } } diff --git a/src/js/platform/sound.js b/src/js/platform/sound.js index 9d5a8461..d43c76c2 100644 --- a/src/js/platform/sound.js +++ b/src/js/platform/sound.js @@ -35,6 +35,10 @@ export const MUSIC = { menu: "menu", }; +if (G_IS_STANDALONE || G_IS_DEV) { + MUSIC.puzzle = "puzzle-full"; +} + export class SoundInstanceInterface { constructor(key, url) { this.key = key; diff --git a/src/js/platform/storage.js b/src/js/platform/storage.js index 1c7fc54b..165ee828 100644 --- a/src/js/platform/storage.js +++ b/src/js/platform/storage.js @@ -30,16 +30,6 @@ export class StorageInterface { return Promise.reject(); } - /** - * Tries to write a file synchronously, used in unload handler - * @param {string} filename - * @param {string} contents - */ - writeFileSyncIfSupported(filename, contents) { - abstract; - return false; - } - /** * Reads a string asynchronously. Returns Promise if file was not found. * @param {string} filename diff --git a/src/js/profile/application_settings.js b/src/js/profile/application_settings.js index 68abf5bb..22074eae 100644 --- a/src/js/profile/application_settings.js +++ b/src/js/profile/application_settings.js @@ -257,6 +257,7 @@ export const allApplicationSettings = [ }), new BoolSetting("enableMousePan", enumCategories.advanced, (app, value) => {}), + new BoolSetting("shapeTooltipAlwaysOn", enumCategories.advanced, (app, value) => {}), new BoolSetting("alwaysMultiplace", enumCategories.advanced, (app, value) => {}), new BoolSetting("zoomToCursor", enumCategories.advanced, (app, value) => {}), new BoolSetting("clearCursorOnDeleteWhilePlacing", enumCategories.advanced, (app, value) => {}), @@ -272,7 +273,7 @@ export const allApplicationSettings = [ new EnumSetting("refreshRate", { options: refreshRateOptions, valueGetter: rate => rate, - textGetter: rate => rate + " Hz", + textGetter: rate => T.settings.tickrateHz.replace("", rate), category: enumCategories.performance, restartRequired: false, changeCb: (app, id) => {}, @@ -307,6 +308,7 @@ class SettingsStorage { this.autosaveInterval = "two_minutes"; this.alwaysMultiplace = false; + this.shapeTooltipAlwaysOn = false; this.offerHints = true; this.enableTunnelSmartplace = true; this.vignette = true; @@ -536,7 +538,7 @@ export class ApplicationSettings extends ReadWriteProxy { } getCurrentVersion() { - return 30; + return 31; } /** @param {{settings: SettingsStorage, version: number}} data */ @@ -683,6 +685,11 @@ export class ApplicationSettings extends ReadWriteProxy { data.version = 30; } + if (data.version < 31) { + data.settings.shapeTooltipAlwaysOn = false; + data.version = 31; + } + return ExplainedResult.good(); } } diff --git a/src/js/savegame/puzzle_serializer.js b/src/js/savegame/puzzle_serializer.js new file mode 100644 index 00000000..c502142b --- /dev/null +++ b/src/js/savegame/puzzle_serializer.js @@ -0,0 +1,209 @@ +/* typehints:start */ +import { GameRoot } from "../game/root"; +import { PuzzleGameMode } from "../game/modes/puzzle"; +/* typehints:end */ +import { StaticMapEntityComponent } from "../game/components/static_map_entity"; +import { ShapeItem } from "../game/items/shape_item"; +import { Vector } from "../core/vector"; +import { MetaConstantProducerBuilding } from "../game/buildings/constant_producer"; +import { defaultBuildingVariant, MetaBuilding } from "../game/meta_building"; +import { gMetaBuildingRegistry } from "../core/global_registries"; +import { MetaGoalAcceptorBuilding } from "../game/buildings/goal_acceptor"; +import { createLogger } from "../core/logging"; +import { BaseItem } from "../game/base_item"; +import trim from "trim"; +import { enumColors } from "../game/colors"; +import { COLOR_ITEM_SINGLETONS } from "../game/items/color_item"; +import { ShapeDefinition } from "../game/shape_definition"; +import { MetaBlockBuilding } from "../game/buildings/block"; + +const logger = createLogger("puzzle-serializer"); + +export class PuzzleSerializer { + /** + * Serializes the game root into a dump + * @param {GameRoot} root + * @returns {import("./savegame_typedefs").PuzzleGameData} + */ + generateDumpFromGameRoot(root) { + console.log("serializing", root); + + /** + * @type {import("./savegame_typedefs").PuzzleGameData["buildings"]} + */ + let buildings = []; + for (const entity of root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) { + const staticComp = entity.components.StaticMapEntity; + const signalComp = entity.components.ConstantSignal; + + if (signalComp) { + assert(["shape", "color"].includes(signalComp.signal.getItemType()), "not a shape signal"); + buildings.push({ + type: "emitter", + item: signalComp.signal.getAsCopyableKey(), + pos: { + x: staticComp.origin.x, + y: staticComp.origin.y, + r: staticComp.rotation, + }, + }); + continue; + } + + const goalComp = entity.components.GoalAcceptor; + if (goalComp) { + assert(goalComp.item, "goals is missing item"); + assert(goalComp.item.getItemType() === "shape", "goal is not an item"); + buildings.push({ + type: "goal", + item: goalComp.item.getAsCopyableKey(), + pos: { + x: staticComp.origin.x, + y: staticComp.origin.y, + r: staticComp.rotation, + }, + }); + continue; + } + + if (staticComp.getMetaBuilding().id === gMetaBuildingRegistry.findByClass(MetaBlockBuilding).id) { + buildings.push({ + type: "block", + pos: { + x: staticComp.origin.x, + y: staticComp.origin.y, + r: staticComp.rotation, + }, + }); + } + } + + const mode = /** @type {PuzzleGameMode} */ (root.gameMode); + + const handles = root.hud.parts.buildingsToolbar.buildingHandles; + const ids = gMetaBuildingRegistry.getAllIds(); + + /** @type {Array} */ + let excludedBuildings = []; + for (let i = 0; i < ids.length; ++i) { + const handle = handles[ids[i]]; + if (handle && handle.puzzleLocked) { + // @ts-ignore + excludedBuildings.push(handle.metaBuilding.getId()); + } + } + + return { + version: 1, + buildings, + bounds: { + w: mode.zoneWidth, + h: mode.zoneHeight, + }, + //read from the toolbar when making a puzzle + excludedBuildings, + }; + } + + /** + * Tries to parse a signal code + * @param {GameRoot} root + * @param {string} code + * @returns {BaseItem} + */ + parseItemCode(root, code) { + if (!root || !root.shapeDefinitionMgr) { + // Stale reference + return null; + } + + code = trim(code); + const codeLower = code.toLowerCase(); + + if (enumColors[codeLower]) { + return COLOR_ITEM_SINGLETONS[codeLower]; + } + + if (ShapeDefinition.isValidShortKey(code)) { + return root.shapeDefinitionMgr.getShapeItemFromShortKey(code); + } + + return null; + } + /** + * @param {GameRoot} root + * @param {import("./savegame_typedefs").PuzzleGameData} puzzle + */ + deserializePuzzle(root, puzzle) { + if (puzzle.version !== 1) { + return "invalid-version"; + } + + for (const building of puzzle.buildings) { + switch (building.type) { + case "emitter": { + const item = this.parseItemCode(root, building.item); + if (!item) { + return "bad-item:" + building.item; + } + + const entity = root.logic.tryPlaceBuilding({ + origin: new Vector(building.pos.x, building.pos.y), + building: gMetaBuildingRegistry.findByClass(MetaConstantProducerBuilding), + originalRotation: building.pos.r, + rotation: building.pos.r, + rotationVariant: 0, + variant: defaultBuildingVariant, + }); + if (!entity) { + logger.warn("Failed to place emitter:", building); + return "failed-to-place-emitter"; + } + + entity.components.ConstantSignal.signal = item; + break; + } + case "goal": { + const item = this.parseItemCode(root, building.item); + if (!item) { + return "bad-item:" + building.item; + } + const entity = root.logic.tryPlaceBuilding({ + origin: new Vector(building.pos.x, building.pos.y), + building: gMetaBuildingRegistry.findByClass(MetaGoalAcceptorBuilding), + originalRotation: building.pos.r, + rotation: building.pos.r, + rotationVariant: 0, + variant: defaultBuildingVariant, + }); + if (!entity) { + logger.warn("Failed to place goal:", building); + return "failed-to-place-goal"; + } + + entity.components.GoalAcceptor.item = item; + break; + } + case "block": { + const entity = root.logic.tryPlaceBuilding({ + origin: new Vector(building.pos.x, building.pos.y), + building: gMetaBuildingRegistry.findByClass(MetaBlockBuilding), + originalRotation: building.pos.r, + rotation: building.pos.r, + rotationVariant: 0, + variant: defaultBuildingVariant, + }); + if (!entity) { + logger.warn("Failed to place block:", building); + return "failed-to-place-block"; + } + break; + } + default: { + // @ts-ignore + return "invalid-building-type: " + building.type; + } + } + } + } +} diff --git a/src/js/savegame/savegame.js b/src/js/savegame/savegame.js index 0ad630f6..36ed884f 100644 --- a/src/js/savegame/savegame.js +++ b/src/js/savegame/savegame.js @@ -11,6 +11,9 @@ import { SavegameInterface_V1003 } from "./schemas/1003"; import { SavegameInterface_V1004 } from "./schemas/1004"; import { SavegameInterface_V1005 } from "./schemas/1005"; import { SavegameInterface_V1006 } from "./schemas/1006"; +import { SavegameInterface_V1007 } from "./schemas/1007"; +import { SavegameInterface_V1008 } from "./schemas/1008"; +import { SavegameInterface_V1009 } from "./schemas/1009"; const logger = createLogger("savegame"); @@ -51,7 +54,7 @@ export class Savegame extends ReadWriteProxy { * @returns {number} */ static getCurrentVersion() { - return 1006; + return 1009; } /** @@ -61,6 +64,24 @@ export class Savegame extends ReadWriteProxy { return savegameInterfaces[Savegame.getCurrentVersion()]; } + /** + * + * @param {Application} app + * @returns + */ + static createPuzzleSavegame(app) { + return new Savegame(app, { + internalId: "puzzle", + metaDataRef: { + internalId: "puzzle", + lastUpdate: 0, + version: 0, + level: 0, + name: "puzzle", + }, + }); + } + /** * @returns {number} */ @@ -76,7 +97,11 @@ export class Savegame extends ReadWriteProxy { return { version: this.getCurrentVersion(), dump: null, - stats: {}, + stats: { + failedMam: false, + trashedCount: 0, + usedInverseRotater: false, + }, lastUpdate: Date.now(), }; } @@ -120,6 +145,21 @@ export class Savegame extends ReadWriteProxy { data.version = 1006; } + if (data.version === 1006) { + SavegameInterface_V1007.migrate1006to1007(data); + data.version = 1007; + } + + if (data.version === 1007) { + SavegameInterface_V1008.migrate1007to1008(data); + data.version = 1008; + } + + if (data.version === 1008) { + SavegameInterface_V1009.migrate1008to1009(data); + data.version = 1009; + } + return ExplainedResult.good(); } diff --git a/src/js/savegame/savegame_compressor.js b/src/js/savegame/savegame_compressor.js index b0b92aa8..d8797bad 100644 --- a/src/js/savegame/savegame_compressor.js +++ b/src/js/savegame/savegame_compressor.js @@ -13,15 +13,20 @@ function compressInt(i) { // Zero value breaks i += 1; - if (compressionCache[i]) { - return compressionCache[i]; + // save `i` as the cache key + // to avoid it being modified by the + // rest of the function. + const cache_key = i; + + if (compressionCache[cache_key]) { + return compressionCache[cache_key]; } let result = ""; do { result += charmap[i % charmap.length]; i = Math.floor(i / charmap.length); } while (i > 0); - return (compressionCache[i] = result); + return (compressionCache[cache_key] = result); } /** diff --git a/src/js/savegame/savegame_interface_registry.js b/src/js/savegame/savegame_interface_registry.js index 07b5353c..b4dc4233 100644 --- a/src/js/savegame/savegame_interface_registry.js +++ b/src/js/savegame/savegame_interface_registry.js @@ -7,6 +7,9 @@ import { SavegameInterface_V1003 } from "./schemas/1003"; import { SavegameInterface_V1004 } from "./schemas/1004"; import { SavegameInterface_V1005 } from "./schemas/1005"; import { SavegameInterface_V1006 } from "./schemas/1006"; +import { SavegameInterface_V1007 } from "./schemas/1007"; +import { SavegameInterface_V1008 } from "./schemas/1008"; +import { SavegameInterface_V1009 } from "./schemas/1009"; /** @type {Object.} */ export const savegameInterfaces = { @@ -17,6 +20,9 @@ export const savegameInterfaces = { 1004: SavegameInterface_V1004, 1005: SavegameInterface_V1005, 1006: SavegameInterface_V1006, + 1007: SavegameInterface_V1007, + 1008: SavegameInterface_V1008, + 1009: SavegameInterface_V1009, }; const logger = createLogger("savegame_interface_registry"); diff --git a/src/js/savegame/savegame_serializer.js b/src/js/savegame/savegame_serializer.js index c1247225..3230cdd5 100644 --- a/src/js/savegame/savegame_serializer.js +++ b/src/js/savegame/savegame_serializer.js @@ -2,6 +2,8 @@ import { ExplainedResult } from "../core/explained_result"; import { createLogger } from "../core/logging"; import { gComponentRegistry } from "../core/global_registries"; import { SerializerInternal } from "./serializer_internal"; +import { HUDPinnedShapes } from "../game/hud/parts/pinned_shapes"; +import { HUDWaypoints } from "../game/hud/parts/waypoints"; /** * @typedef {import("../game/component").Component} Component @@ -33,12 +35,13 @@ export class SavegameSerializer { camera: root.camera.serialize(), time: root.time.serialize(), map: root.map.serialize(), + gameMode: root.gameMode.serialize(), entityMgr: root.entityMgr.serialize(), hubGoals: root.hubGoals.serialize(), - pinnedShapes: root.hud.parts.pinnedShapes.serialize(), - waypoints: root.hud.parts.waypoints.serialize(), entities: this.internal.serializeEntityArray(root.entityMgr.entities), beltPaths: root.systemMgr.systems.belt.serializePaths(), + pinnedShapes: root.hud.parts.pinnedShapes ? root.hud.parts.pinnedShapes.serialize() : null, + waypoints: root.hud.parts.waypoints ? root.hud.parts.waypoints.serialize() : null, }; if (G_IS_DEV) { @@ -130,12 +133,19 @@ export class SavegameSerializer { errorReason = errorReason || root.time.deserialize(savegame.time); errorReason = errorReason || root.camera.deserialize(savegame.camera); errorReason = errorReason || root.map.deserialize(savegame.map); + errorReason = errorReason || root.gameMode.deserialize(savegame.gameMode); errorReason = errorReason || root.hubGoals.deserialize(savegame.hubGoals, root); - errorReason = errorReason || root.hud.parts.pinnedShapes.deserialize(savegame.pinnedShapes); - errorReason = errorReason || root.hud.parts.waypoints.deserialize(savegame.waypoints); errorReason = errorReason || this.internal.deserializeEntityArray(root, savegame.entities); errorReason = errorReason || root.systemMgr.systems.belt.deserializePaths(savegame.beltPaths); + if (root.hud.parts.pinnedShapes) { + errorReason = errorReason || root.hud.parts.pinnedShapes.deserialize(savegame.pinnedShapes); + } + + if (root.hud.parts.waypoints) { + errorReason = errorReason || root.hud.parts.waypoints.deserialize(savegame.waypoints); + } + // Check for errors if (errorReason) { return ExplainedResult.bad(errorReason); diff --git a/src/js/savegame/savegame_typedefs.js b/src/js/savegame/savegame_typedefs.js index 0f94cd6a..c5e0e5c5 100644 --- a/src/js/savegame/savegame_typedefs.js +++ b/src/js/savegame/savegame_typedefs.js @@ -1,13 +1,18 @@ /** * @typedef {import("../game/entity").Entity} Entity * - * @typedef {{}} SavegameStats + * @typedef {{ + * failedMam: boolean, + * trashedCount: number, + * usedInverseRotater: boolean + * }} SavegameStats * * @typedef {{ * camera: any, * time: any, * entityMgr: any, * map: any, + * gameMode: object, * hubGoals: any, * pinnedShapes: any, * waypoints: any, @@ -36,4 +41,61 @@ * }} SavegamesData */ +import { MetaBuilding } from "../game/meta_building"; + +// Notice: Update backend too +/** + * @typedef {{ + * id: number; + * shortKey: string; + * likes: number; + * downloads: number; + * completions: number; + * difficulty: number | null; + * averageTime: number | null; + * title: string; + * author: string; + * completed: boolean; + * }} PuzzleMetadata + */ + +/** + * @typedef {{ + * type: "emitter"; + * item: string; + * pos: { x: number; y: number; r: number } + * }} PuzzleGameBuildingConstantProducer + */ + +/** + * @typedef {{ + * type: "goal"; + * item: string; + * pos: { x: number; y: number; r: number } + * }} PuzzleGameBuildingGoal + */ + +/** + * @typedef {{ + * type: "block"; + * pos: { x: number; y: number; r: number } + * }} PuzzleGameBuildingBlock + */ + +/** + * @typedef {{ + * version: number; + * bounds: { w: number; h: number; }, + * buildings: (PuzzleGameBuildingGoal | PuzzleGameBuildingConstantProducer | PuzzleGameBuildingBlock)[], + * excludedBuildings: Array, + * }} PuzzleGameData + */ + +/** + * @typedef {{ + * meta: PuzzleMetadata, + * game: PuzzleGameData + * }} PuzzleFullData + */ + export default {}; diff --git a/src/js/savegame/schemas/1007.js b/src/js/savegame/schemas/1007.js new file mode 100644 index 00000000..f6b1d194 --- /dev/null +++ b/src/js/savegame/schemas/1007.js @@ -0,0 +1,34 @@ +import { createLogger } from "../../core/logging.js"; +import { SavegameInterface_V1006 } from "./1006.js"; + +const schema = require("./1007.json"); +const logger = createLogger("savegame_interface/1007"); + +export class SavegameInterface_V1007 extends SavegameInterface_V1006 { + getVersion() { + return 1007; + } + + getSchemaUncached() { + return schema; + } + + /** + * @param {import("../savegame_typedefs.js").SavegameData} data + */ + static migrate1006to1007(data) { + logger.log("Migrating 1006 to 1007"); + const dump = data.dump; + if (!dump) { + return true; + } + + const waypoints = dump.waypoints.waypoints; + + // set waypoint layer to "regular" + for (let i = 0; i < waypoints.length; ++i) { + const waypoint = waypoints[i]; + waypoint.layer = "regular"; + } + } +} diff --git a/src/js/savegame/schemas/1007.json b/src/js/savegame/schemas/1007.json new file mode 100644 index 00000000..6682f615 --- /dev/null +++ b/src/js/savegame/schemas/1007.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "required": [], + "additionalProperties": true +} diff --git a/src/js/savegame/schemas/1008.js b/src/js/savegame/schemas/1008.js new file mode 100644 index 00000000..350a75a8 --- /dev/null +++ b/src/js/savegame/schemas/1008.js @@ -0,0 +1,32 @@ +import { createLogger } from "../../core/logging.js"; +import { SavegameInterface_V1007 } from "./1007.js"; + +const schema = require("./1008.json"); +const logger = createLogger("savegame_interface/1008"); + +export class SavegameInterface_V1008 extends SavegameInterface_V1007 { + getVersion() { + return 1008; + } + + getSchemaUncached() { + return schema; + } + + /** + * @param {import("../savegame_typedefs.js").SavegameData} data + */ + static migrate1007to1008(data) { + logger.log("Migrating 1007 to 1008"); + const dump = data.dump; + if (!dump) { + return true; + } + + Object.assign(data.stats, { + failedMam: true, + trashedCount: 0, + usedInverseRotater: true, + }); + } +} diff --git a/src/js/savegame/schemas/1008.json b/src/js/savegame/schemas/1008.json new file mode 100644 index 00000000..6682f615 --- /dev/null +++ b/src/js/savegame/schemas/1008.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "required": [], + "additionalProperties": true +} diff --git a/src/js/savegame/schemas/1009.js b/src/js/savegame/schemas/1009.js new file mode 100644 index 00000000..e6e1abc6 --- /dev/null +++ b/src/js/savegame/schemas/1009.js @@ -0,0 +1,34 @@ +import { createLogger } from "../../core/logging.js"; +import { RegularGameMode } from "../../game/modes/regular.js"; +import { SavegameInterface_V1008 } from "./1008.js"; + +const schema = require("./1009.json"); +const logger = createLogger("savegame_interface/1009"); + +export class SavegameInterface_V1009 extends SavegameInterface_V1008 { + getVersion() { + return 1009; + } + + getSchemaUncached() { + return schema; + } + + /** + * @param {import("../savegame_typedefs.js").SavegameData} data + */ + static migrate1008to1009(data) { + logger.log("Migrating 1008 to 1009"); + const dump = data.dump; + if (!dump) { + return true; + } + + dump.gameMode = { + mode: { + id: RegularGameMode.getId(), + data: {}, + }, + }; + } +} diff --git a/src/js/savegame/schemas/1009.json b/src/js/savegame/schemas/1009.json new file mode 100644 index 00000000..6682f615 --- /dev/null +++ b/src/js/savegame/schemas/1009.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "required": [], + "additionalProperties": true +} diff --git a/src/js/savegame/serialization.js b/src/js/savegame/serialization.js index 801b26ab..78642ceb 100644 --- a/src/js/savegame/serialization.js +++ b/src/js/savegame/serialization.js @@ -275,7 +275,7 @@ export function deserializeSchema(obj, schema, data, baseclassErrorResult = null return baseclassErrorResult; } - if (!data) { + if (data === null || typeof data === "undefined") { logger.error("Got 'NULL' data for", obj, "and schema", schema, "!"); return "Got null data"; } diff --git a/src/js/states/about.js b/src/js/states/about.js index db06d8de..4380b02c 100644 --- a/src/js/states/about.js +++ b/src/js/states/about.js @@ -2,6 +2,7 @@ import { TextualGameState } from "../core/textual_game_state"; import { T } from "../translations"; import { THIRDPARTY_URLS } from "../core/config"; import { cachebust } from "../core/cachebust"; +import { getLogoSprite } from "../core/background_resources_loader"; export class AboutState extends TextualGameState { constructor() { @@ -15,7 +16,7 @@ export class AboutState extends TextualGameState { getMainContentHTML() { return `
- shapez.io Logo + shapez.io Logo
${T.about.body diff --git a/src/js/states/changelog.js b/src/js/states/changelog.js index 498162d3..4d2afa0f 100644 --- a/src/js/states/changelog.js +++ b/src/js/states/changelog.js @@ -19,7 +19,7 @@ export class ChangelogState extends TextualGameState { for (let i = 0; i < entries.length; ++i) { const entry = entries[i]; html += ` -
+
${entry.version} ${entry.date}
    diff --git a/src/js/states/ingame.js b/src/js/states/ingame.js index 316c536c..0dd6c72a 100644 --- a/src/js/states/ingame.js +++ b/src/js/states/ingame.js @@ -8,6 +8,7 @@ import { KeyActionMapper } from "../game/key_action_mapper"; import { Savegame } from "../savegame/savegame"; import { GameCore } from "../game/core"; import { MUSIC } from "../platform/sound"; +import { enumGameModeIds } from "../game/game_mode"; const logger = createLogger("state/ingame"); @@ -39,8 +40,14 @@ export class GameCreationPayload { /** @type {boolean|undefined} */ this.fastEnter; + /** @type {string} */ + this.gameModeId; + /** @type {Savegame} */ this.savegame; + + /** @type {object|undefined} */ + this.gameModeParameters; } } @@ -97,6 +104,9 @@ export class InGameState extends GameState { } getThemeMusic() { + if (this.creationPayload.gameModeId && this.creationPayload.gameModeId.includes("puzzle")) { + return MUSIC.puzzle; + } return MUSIC.theme; } @@ -147,7 +157,11 @@ export class InGameState extends GameState { * Goes back to the menu state */ goBackToMenu() { - this.saveThenGoToState("MainMenuState"); + if ([enumGameModeIds.puzzleEdit, enumGameModeIds.puzzlePlay].includes(this.gameModeId)) { + this.saveThenGoToState("PuzzleMenuState"); + } else { + this.saveThenGoToState("MainMenuState"); + } } /** @@ -220,7 +234,7 @@ export class InGameState extends GameState { logger.log("Creating new game core"); this.core = new GameCore(this.app); - this.core.initializeRoot(this, this.savegame); + this.core.initializeRoot(this, this.savegame, this.gameModeId); if (this.savegame.hasGameDump()) { this.stage4bResumeGame(); @@ -354,6 +368,7 @@ export class InGameState extends GameState { this.creationPayload = payload; this.savegame = payload.savegame; + this.gameModeId = payload.gameModeId; this.loadingOverlay = new GameLoadingOverlay(this.app, this.getDivElement()); this.loadingOverlay.showBasic(); @@ -361,7 +376,13 @@ export class InGameState extends GameState { // Remove unneded default element document.body.querySelector(".modalDialogParent").remove(); - this.asyncChannel.watch(waitNextFrame()).then(() => this.stage3CreateCore()); + this.asyncChannel + .watch(waitNextFrame()) + .then(() => this.stage3CreateCore()) + .catch(ex => { + logger.error(ex); + throw ex; + }); } /** @@ -433,6 +454,11 @@ export class InGameState extends GameState { logger.warn("Skipping double save and returning same promise"); return this.currentSavePromise; } + + if (!this.core.root.gameMode.getIsSaveable()) { + return Promise.resolve(); + } + logger.log("Starting to save game ..."); this.savegame.updateData(this.core.root); diff --git a/src/js/states/login.js b/src/js/states/login.js new file mode 100644 index 00000000..64f599e4 --- /dev/null +++ b/src/js/states/login.js @@ -0,0 +1,102 @@ +import { GameState } from "../core/game_state"; +import { getRandomHint } from "../game/hints"; +import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs"; +import { T } from "../translations"; + +export class LoginState extends GameState { + constructor() { + super("LoginState"); + } + + getInnerHTML() { + return ` +
    +
    + ${T.global.loggingIn} +
    +
+ + `; + } + + /** + * + * @param {object} payload + * @param {string} payload.nextStateId + */ + onEnter(payload) { + this.payload = payload; + if (!this.payload.nextStateId) { + throw new Error("No next state id"); + } + + if (this.app.clientApi.isLoggedIn()) { + this.finishLoading(); + return; + } + + this.dialogs = new HUDModalDialogs(null, this.app); + const dialogsElement = document.body.querySelector(".modalDialogParent"); + this.dialogs.initializeToElement(dialogsElement); + + this.htmlElement.classList.add("prefab_LoadingState"); + + /** @type {HTMLElement} */ + this.hintsText = this.htmlElement.querySelector(".prefab_GameHint"); + this.lastHintShown = -1000; + this.nextHintDuration = 0; + + this.tryLogin(); + } + + tryLogin() { + this.app.clientApi.tryLogin().then(success => { + console.log("Logged in:", success); + + if (!success) { + const signals = this.dialogs.showWarning( + T.dialogs.offlineMode.title, + T.dialogs.offlineMode.desc, + ["retry", "playOffline:bad"] + ); + signals.retry.add(() => setTimeout(() => this.tryLogin(), 2000), this); + signals.playOffline.add(this.finishLoading, this); + } else { + this.finishLoading(); + } + }); + } + + finishLoading() { + this.moveToState(this.payload.nextStateId); + } + + getDefaultPreviousState() { + return "MainMenuState"; + } + + update() { + const now = performance.now(); + if (now - this.lastHintShown > this.nextHintDuration) { + this.lastHintShown = now; + const hintText = getRandomHint(); + + this.hintsText.innerHTML = hintText; + + /** + * Compute how long the user will need to read the hint. + * We calculate with 130 words per minute, with an average of 5 chars + * that is 650 characters / minute + */ + this.nextHintDuration = Math.max(2500, (hintText.length / 650) * 60 * 1000); + } + } + + onRender() { + this.update(); + } + + onBackgroundTick() { + this.update(); + } +} diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index fa177874..60495a9c 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -1,3 +1,4 @@ +import { getLogoSprite } from "../core/background_resources_loader"; import { cachebust } from "../core/cachebust"; import { A_B_TESTING_LINK_TYPE, globalConfig, THIRDPARTY_URLS } from "../core/config"; import { GameState } from "../core/game_state"; @@ -16,6 +17,8 @@ import { waitNextFrame, } from "../core/utils"; import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs"; +import { PlatformWrapperImplBrowser } from "../platform/browser/wrapper"; +import { PlatformWrapperImplElectron } from "../platform/electron/wrapper"; import { getApplicationSettingById } from "../profile/application_settings"; import { T } from "../translations"; @@ -32,25 +35,57 @@ export class MainMenuState extends GameState { } getInnerHTML() { + const showLanguageIcon = !G_CHINA_VERSION && !G_WEGAME_VERSION; + const showExitAppButton = G_IS_STANDALONE; + const showUpdateLabel = !G_WEGAME_VERSION; + const showBrowserWarning = !G_IS_STANDALONE && !isSupportedBrowser(); + const showPuzzleDLC = !G_WEGAME_VERSION && (G_IS_STANDALONE || G_IS_DEV); + const showWegameFooter = G_WEGAME_VERSION; + + let showExternalLinks = true; + + if (G_IS_STANDALONE) { + if (G_WEGAME_VERSION || G_CHINA_VERSION) { + showExternalLinks = false; + } + } else { + const wrapper = /** @type {PlatformWrapperImplBrowser} */ (this.app.platformWrapper); + if (!wrapper.embedProvider.externalLinks) { + showExternalLinks = false; + } + } + + let showDiscordLink = showExternalLinks; + if (G_CHINA_VERSION) { + showDiscordLink = true; + } + + const showCrosspromo = !G_IS_STANDALONE && showExternalLinks; + const showDemoAdvertisement = + showExternalLinks && this.app.restrictionMgr.getIsStandaloneMarketingActive(); + + const ownsPuzzleDLC = + G_IS_DEV || + (G_IS_STANDALONE && + /** @type { PlatformWrapperImplElectron}*/ (this.app.platformWrapper).dlcs.puzzle); + const bannerHtml = `

${T.demoBanners.title}

${T.demoBanners.intro}

- Get the shapez.io standalone! - `; - const showDemoBadges = this.app.restrictionMgr.getIsStandaloneMarketingActive(); + Get the shapez.io standalone! + `; return `
- + ${ + showLanguageIcon + ? `` + : "" + } + - ${ - G_IS_STANDALONE || G_IS_DEV - ? ` - - ` - : "" - } + ${showExitAppButton ? `` : ""}
-
+
- ${showDemoBadges ? `
${bannerHtml}
` : ""} + ${showDemoAdvertisement ? `
${bannerHtml}
` : ""}
${ - isSupportedBrowser() - ? "" - : `
${T.mainMenu.browserWarning}
` + showBrowserWarning + ? `
${T.mainMenu.browserWarning}
` + : "" }
+ + ${ + showPuzzleDLC && ownsPuzzleDLC + ? ` +
+ + +
` + : "" + } + + ${ + showPuzzleDLC && !ownsPuzzleDLC + ? ` +
+ + ${T.puzzleMenu.categories.new} + + +

${T.mainMenu.puzzleDlcText}

+ + + ${T.puzzleMenu.dlcHint} + +
` + : "" + }
- @@ -58,8 +58,6 @@ export class PreloadState extends GameState { this.lastHintShown = -1000; this.nextHintDuration = 0; - this.currentStatus = "booting"; - this.startLoading(); } @@ -83,9 +81,11 @@ export class PreloadState extends GameState { } catch (ex) { logger.error("Failed to read/write local storage:", ex); return new Promise(() => { - alert(`Your brower does not support thirdparty cookies or you have disabled it in your security settings.\n\n - In Chrome this setting is called "Block third-party cookies and site data".\n\n - Please allow third party cookies and then reload the page.`); + alert( + "Your brower does not support thirdparty cookies or you have disabled it in your security settings.\n\n" + + "In Chrome this setting is called 'Block third-party cookies and site data'.\n\n" + + "Please allow third party cookies and then reload the page." + ); // Never return }); } @@ -115,6 +115,10 @@ export class PreloadState extends GameState { .then(() => this.setStatus("Initializing language")) .then(() => { + if (G_CHINA_VERSION || G_WEGAME_VERSION) { + return this.app.settings.updateLanguage("zh-CN"); + } + if (this.app.settings.getLanguage() === "auto-detect") { const language = autoDetectLanguageId(); logger.log("Setting language to", language); @@ -163,6 +167,10 @@ export class PreloadState extends GameState { return; } + if (G_CHINA_VERSION || G_WEGAME_VERSION) { + return; + } + return this.app.storage .readFileAsync("lastversion.bin") .catch(err => { @@ -192,7 +200,9 @@ export class PreloadState extends GameState { for (let i = 0; i < changelogEntries.length; ++i) { const entry = changelogEntries[i]; dialogHtml += ` -
+
${entry.version} ${entry.date}
    @@ -220,6 +230,9 @@ export class PreloadState extends GameState { } update() { + if (G_CHINA_VERSION || G_WEGAME_VERSION) { + return; + } const now = performance.now(); if (now - this.lastHintShown > this.nextHintDuration) { this.lastHintShown = now; @@ -250,6 +263,9 @@ export class PreloadState extends GameState { */ setStatus(text) { logger.log("✅ " + text); + if (G_CHINA_VERSION || G_WEGAME_VERSION) { + return Promise.resolve(); + } this.currentStatus = text; this.statusText.innerText = text; return Promise.resolve(); @@ -265,7 +281,7 @@ export class PreloadState extends GameState { subElement.innerHTML = `
    diff --git a/src/js/states/puzzle_menu.js b/src/js/states/puzzle_menu.js new file mode 100644 index 00000000..4677f6c5 --- /dev/null +++ b/src/js/states/puzzle_menu.js @@ -0,0 +1,615 @@ +import { createLogger } from "../core/logging"; +import { DialogWithForm } from "../core/modal_dialog_elements"; +import { FormElementInput } from "../core/modal_dialog_forms"; +import { TextualGameState } from "../core/textual_game_state"; +import { formatBigNumberFull } from "../core/utils"; +import { enumGameModeIds } from "../game/game_mode"; +import { ShapeDefinition } from "../game/shape_definition"; +import { MUSIC } from "../platform/sound"; +import { Savegame } from "../savegame/savegame"; +import { T } from "../translations"; + +const navigation = { + categories: ["official", "top-rated", "trending", "trending-weekly", "new"], + difficulties: ["easy", "medium", "hard"], + account: ["mine", "completed"], + search: ["search"], +}; + +const logger = createLogger("puzzle-menu"); + +let lastCategory = "official"; + +let lastSearchOptions = { + searchTerm: "", + difficulty: "any", + duration: "any", + includeCompleted: false, +}; + +export class PuzzleMenuState extends TextualGameState { + constructor() { + super("PuzzleMenuState"); + this.loading = false; + this.activeCategory = ""; + + /** + * @type {Array} + */ + this.puzzles = []; + } + + getThemeMusic() { + return MUSIC.puzzle; + } + + getStateHeaderTitle() { + return T.puzzleMenu.title; + } + /** + * Overrides the GameState implementation to provide our own html + */ + internalGetFullHtml() { + let headerHtml = ` +
    +

    ${this.getStateHeaderTitle()}

    + +
    + + +
    + +
    `; + + return ` + ${headerHtml} +
    + ${this.getInnerHTML()} +
    + `; + } + + getMainContentHTML() { + let html = ` +
    + +
    + ${Object.keys(navigation) + .map( + rootCategory => + `` + ) + .join("")} +
    + +
    +
    + +
    + + +
    + `; + + return html; + } + + selectCategory(category) { + lastCategory = category; + if (category === this.activeCategory) { + return; + } + + if (this.loading) { + return; + } + + this.loading = true; + this.activeCategory = category; + + const activeCategory = this.htmlElement.querySelector(".active[data-category]"); + if (activeCategory) { + activeCategory.classList.remove("active"); + } + + const categoryElement = this.htmlElement.querySelector(`[data-category="${category}"]`); + if (categoryElement) { + categoryElement.classList.add("active"); + } + + const container = this.htmlElement.querySelector("#mainContainer"); + while (container.firstChild) { + container.removeChild(container.firstChild); + } + + if (category === "search") { + this.loading = false; + + this.startSearch(); + return; + } + + const loadingElement = document.createElement("div"); + loadingElement.classList.add("loader"); + loadingElement.innerText = T.global.loading + "..."; + container.appendChild(loadingElement); + + this.asyncChannel + .watch(this.getPuzzlesForCategory(category)) + .then( + puzzles => this.renderPuzzles(puzzles), + error => { + this.dialogs.showWarning( + T.dialogs.puzzleLoadFailed.title, + T.dialogs.puzzleLoadFailed.desc + " " + error + ); + this.renderPuzzles([]); + } + ) + .then(() => (this.loading = false)); + } + + /** + * Selects a root category + * @param {string} rootCategory + * @param {string=} category + */ + selectRootCategory(rootCategory, category) { + const subCategory = category || navigation[rootCategory][0]; + console.warn("Select root category", rootCategory, category, "->", subCategory); + + if (this.loading) { + return; + } + if (this.activeCategory === subCategory) { + return; + } + + const activeCategory = this.htmlElement.querySelector(".active[data-root-category]"); + if (activeCategory) { + activeCategory.classList.remove("active"); + } + + const newActiveCategory = this.htmlElement.querySelector(`[data-root-category="${rootCategory}"]`); + if (newActiveCategory) { + newActiveCategory.classList.add("active"); + } + + // Rerender buttons + + const subContainer = this.htmlElement.querySelector(".subCategories"); + while (subContainer.firstChild) { + subContainer.removeChild(subContainer.firstChild); + } + + const children = navigation[rootCategory]; + if (children.length > 1) { + for (const category of children) { + const button = document.createElement("button"); + button.setAttribute("data-category", category); + button.classList.add("styledButton", "category", "child"); + button.innerText = T.puzzleMenu.categories[category]; + this.trackClicks(button, () => this.selectCategory(category)); + subContainer.appendChild(button); + } + } + + if (rootCategory === "search") { + this.renderSearchForm(subContainer); + } + + this.selectCategory(subCategory); + } + + renderSearchForm(parent) { + const container = document.createElement("form"); + container.classList.add("searchForm"); + + // Search + const searchField = document.createElement("input"); + searchField.value = lastSearchOptions.searchTerm; + searchField.classList.add("search"); + searchField.setAttribute("type", "text"); + searchField.setAttribute("placeholder", T.puzzleMenu.search.placeholder); + searchField.addEventListener("input", () => { + lastSearchOptions.searchTerm = searchField.value.trim(); + }); + container.appendChild(searchField); + + // Difficulty + const difficultyFilter = document.createElement("select"); + for (const difficulty of ["any", "easy", "medium", "hard"]) { + const option = document.createElement("option"); + option.value = difficulty; + option.innerText = T.puzzleMenu.search.difficulties[difficulty]; + if (option.value === lastSearchOptions.difficulty) { + option.setAttribute("selected", "selected"); + } + difficultyFilter.appendChild(option); + } + difficultyFilter.addEventListener("change", () => { + const option = difficultyFilter.value; + lastSearchOptions.difficulty = option; + }); + container.appendChild(difficultyFilter); + + // Duration + const durationFilter = document.createElement("select"); + for (const duration of ["any", "short", "medium", "long"]) { + const option = document.createElement("option"); + option.value = duration; + option.innerText = T.puzzleMenu.search.durations[duration]; + if (option.value === lastSearchOptions.duration) { + option.setAttribute("selected", "selected"); + } + durationFilter.appendChild(option); + } + durationFilter.addEventListener("change", () => { + const option = durationFilter.value; + lastSearchOptions.duration = option; + }); + container.appendChild(durationFilter); + + // Include completed + const labelCompleted = document.createElement("label"); + labelCompleted.classList.add("filterCompleted"); + + const inputCompleted = document.createElement("input"); + inputCompleted.setAttribute("type", "checkbox"); + if (lastSearchOptions.includeCompleted) { + inputCompleted.setAttribute("checked", "checked"); + } + inputCompleted.addEventListener("change", () => { + lastSearchOptions.includeCompleted = inputCompleted.checked; + }); + + labelCompleted.appendChild(inputCompleted); + + const text = document.createTextNode(T.puzzleMenu.search.includeCompleted); + labelCompleted.appendChild(text); + + container.appendChild(labelCompleted); + + // Submit + const submitButton = document.createElement("button"); + submitButton.classList.add("styledButton"); + submitButton.setAttribute("type", "submit"); + submitButton.innerText = T.puzzleMenu.search.action; + container.appendChild(submitButton); + + container.addEventListener("submit", event => { + event.preventDefault(); + console.log("Search:", searchField.value.trim()); + this.startSearch(); + }); + + parent.appendChild(container); + } + + startSearch() { + if (this.loading) { + return; + } + + this.loading = true; + + const container = this.htmlElement.querySelector("#mainContainer"); + while (container.firstChild) { + container.removeChild(container.firstChild); + } + + const loadingElement = document.createElement("div"); + loadingElement.classList.add("loader"); + loadingElement.innerText = T.global.loading + "..."; + container.appendChild(loadingElement); + + this.asyncChannel + .watch(this.app.clientApi.apiSearchPuzzles(lastSearchOptions)) + .then( + puzzles => this.renderPuzzles(puzzles), + error => { + this.dialogs.showWarning( + T.dialogs.puzzleLoadFailed.title, + T.dialogs.puzzleLoadFailed.desc + " " + error + ); + this.renderPuzzles([]); + } + ) + .then(() => (this.loading = false)); + } + + /** + * + * @param {import("../savegame/savegame_typedefs").PuzzleMetadata[]} puzzles + */ + renderPuzzles(puzzles) { + this.puzzles = puzzles; + + const container = this.htmlElement.querySelector("#mainContainer"); + while (container.firstChild) { + container.removeChild(container.firstChild); + } + + for (const puzzle of puzzles) { + const elem = document.createElement("div"); + elem.classList.add("puzzle"); + elem.setAttribute("data-puzzle-id", String(puzzle.id)); + + if (this.activeCategory !== "mine") { + elem.classList.toggle("completed", puzzle.completed); + } + + if (puzzle.title) { + const title = document.createElement("div"); + title.classList.add("title"); + title.innerText = puzzle.title; + elem.appendChild(title); + } + + if (puzzle.author && !["official", "mine"].includes(this.activeCategory)) { + const author = document.createElement("div"); + author.classList.add("author"); + author.innerText = "by " + puzzle.author; + elem.appendChild(author); + } + + const stats = document.createElement("div"); + stats.classList.add("stats"); + elem.appendChild(stats); + + if (!["official", "easy", "medium", "hard"].includes(this.activeCategory)) { + const difficulty = document.createElement("div"); + difficulty.classList.add("difficulty"); + + const completionPercentage = Math.max( + 0, + Math.min(100, Math.round((puzzle.completions / puzzle.downloads) * 100.0)) + ); + difficulty.innerText = completionPercentage + "%"; + stats.appendChild(difficulty); + + if (puzzle.difficulty === null) { + difficulty.classList.add("stage--unknown"); + difficulty.innerText = T.puzzleMenu.difficulties.unknown; + } else if (puzzle.difficulty < 0.2) { + difficulty.classList.add("stage--easy"); + difficulty.innerText = T.puzzleMenu.difficulties.easy; + } else if (puzzle.difficulty > 0.6) { + difficulty.classList.add("stage--hard"); + difficulty.innerText = T.puzzleMenu.difficulties.hard; + } else { + difficulty.classList.add("stage--medium"); + difficulty.innerText = T.puzzleMenu.difficulties.medium; + } + } + + if (this.activeCategory === "mine") { + const downloads = document.createElement("div"); + downloads.classList.add("downloads"); + downloads.innerText = String(puzzle.downloads); + stats.appendChild(downloads); + stats.classList.add("withDownloads"); + } + + const likes = document.createElement("div"); + likes.classList.add("likes"); + likes.innerText = formatBigNumberFull(puzzle.likes); + stats.appendChild(likes); + + const definition = ShapeDefinition.fromShortKey(puzzle.shortKey); + const canvas = definition.generateAsCanvas(100 * this.app.getEffectiveUiScale()); + + const icon = document.createElement("div"); + icon.classList.add("icon"); + icon.appendChild(canvas); + elem.appendChild(icon); + + if (this.activeCategory === "mine") { + const deleteButton = document.createElement("button"); + deleteButton.classList.add("styledButton", "delete"); + this.trackClicks( + deleteButton, + () => { + this.tryDeletePuzzle(puzzle); + }, + { + consumeEvents: true, + preventClick: true, + preventDefault: true, + } + ); + elem.appendChild(deleteButton); + } + + container.appendChild(elem); + + this.trackClicks(elem, () => this.playPuzzle(puzzle.id)); + } + + if (puzzles.length === 0) { + const elem = document.createElement("div"); + elem.classList.add("empty"); + elem.innerText = T.puzzleMenu.noPuzzles; + container.appendChild(elem); + } + } + + /** + * @param {import("../savegame/savegame_typedefs").PuzzleMetadata} puzzle + */ + tryDeletePuzzle(puzzle) { + const signals = this.dialogs.showWarning( + T.dialogs.puzzleDelete.title, + T.dialogs.puzzleDelete.desc.replace("", puzzle.title), + ["delete:bad", "cancel:good"] + ); + signals.delete.add(() => { + const closeLoading = this.dialogs.showLoadingDialog(); + + this.asyncChannel + .watch(this.app.clientApi.apiDeletePuzzle(puzzle.id)) + .then(() => { + const element = this.htmlElement.querySelector("[data-puzzle-id='" + puzzle.id + "']"); + if (element) { + element.remove(); + } + }) + .catch(err => { + this.dialogs.showWarning(T.global.error, String(err)); + }) + .then(closeLoading); + }); + } + + /** + * + * @param {*} category + * @returns {Promise<import("../savegame/savegame_typedefs").PuzzleMetadata[]>} + */ + getPuzzlesForCategory(category) { + const result = this.app.clientApi.apiListPuzzles(category); + return result.catch(err => { + logger.error("Failed to get", category, ":", err); + throw err; + }); + } + + /** + * + * @param {number} puzzleId + * @param {Array<number>=} nextPuzzles + */ + playPuzzle(puzzleId, nextPuzzles) { + const closeLoading = this.dialogs.showLoadingDialog(); + + this.asyncChannel.watch(this.app.clientApi.apiDownloadPuzzle(puzzleId)).then( + puzzleData => { + closeLoading(); + + nextPuzzles = + nextPuzzles || this.puzzles.filter(puzzle => !puzzle.completed).map(puzzle => puzzle.id); + nextPuzzles = nextPuzzles.filter(id => id !== puzzleId); + + logger.log("Got puzzle:", puzzleData, "next puzzles:", nextPuzzles); + this.startLoadedPuzzle(puzzleData, nextPuzzles); + }, + err => { + closeLoading(); + logger.error("Failed to download puzzle", puzzleId, ":", err); + this.dialogs.showWarning( + T.dialogs.puzzleDownloadError.title, + T.dialogs.puzzleDownloadError.desc + " " + err + ); + } + ); + } + + /** + * + * @param {import("../savegame/savegame_typedefs").PuzzleFullData} puzzle + * @param {Array<number>=} nextPuzzles + */ + startLoadedPuzzle(puzzle, nextPuzzles) { + const savegame = Savegame.createPuzzleSavegame(this.app); + this.moveToState("InGameState", { + gameModeId: enumGameModeIds.puzzlePlay, + gameModeParameters: { + puzzle, + nextPuzzles, + }, + savegame, + }); + } + + onEnter(payload) { + if (payload.continueQueue) { + logger.log("Continuing puzzle queue:", payload); + this.playPuzzle(payload.continueQueue[0], payload.continueQueue.slice(1)); + } + + // Find old category + let rootCategory = "categories"; + for (const [id, children] of Object.entries(navigation)) { + if (children.includes(lastCategory)) { + rootCategory = id; + break; + } + } + + this.selectRootCategory(rootCategory, lastCategory); + + if (payload && payload.error) { + this.dialogs.showWarning(payload.error.title, payload.error.desc); + } + + for (const rootCategory of Object.keys(navigation)) { + const button = this.htmlElement.querySelector(`[data-root-category="${rootCategory}"]`); + this.trackClicks(button, () => this.selectRootCategory(rootCategory)); + } + + this.trackClicks(this.htmlElement.querySelector("button.createPuzzle"), () => this.createNewPuzzle()); + this.trackClicks(this.htmlElement.querySelector("button.loadPuzzle"), () => this.loadPuzzle()); + } + + loadPuzzle() { + const shortKeyInput = new FormElementInput({ + id: "shortKey", + label: null, + placeholder: "", + defaultValue: "", + validator: val => ShapeDefinition.isValidShortKey(val) || val.startsWith("/"), + }); + + const dialog = new DialogWithForm({ + app: this.app, + title: T.dialogs.puzzleLoadShortKey.title, + desc: T.dialogs.puzzleLoadShortKey.desc, + formElements: [shortKeyInput], + buttons: ["ok:good:enter"], + }); + this.dialogs.internalShowDialog(dialog); + + dialog.buttonSignals.ok.add(() => { + const searchTerm = shortKeyInput.getValue(); + + if (searchTerm === "/apikey") { + alert("Your api key is: " + this.app.clientApi.token); + return; + } + + const closeLoading = this.dialogs.showLoadingDialog(); + + this.app.clientApi.apiDownloadPuzzleByKey(searchTerm).then( + puzzle => { + closeLoading(); + this.startLoadedPuzzle(puzzle); + }, + err => { + closeLoading(); + this.dialogs.showWarning( + T.dialogs.puzzleDownloadError.title, + T.dialogs.puzzleDownloadError.desc + " " + err + ); + } + ); + }); + } + + createNewPuzzle(force = false) { + if (!force && !this.app.clientApi.isLoggedIn()) { + const signals = this.dialogs.showWarning( + T.dialogs.puzzleCreateOffline.title, + T.dialogs.puzzleCreateOffline.desc, + ["cancel:good", "continue:bad"] + ); + signals.continue.add(() => this.createNewPuzzle(true)); + return; + } + + const savegame = Savegame.createPuzzleSavegame(this.app); + this.moveToState("InGameState", { + gameModeId: enumGameModeIds.puzzleEdit, + savegame, + }); + } +} diff --git a/src/js/states/settings.js b/src/js/states/settings.js index 36dee5d8..352e0153 100644 --- a/src/js/states/settings.js +++ b/src/js/states/settings.js @@ -1,3 +1,4 @@ +import { THIRDPARTY_URLS } from "../core/config"; import { TextualGameState } from "../core/textual_game_state"; import { formatSecondsToTimeAgo } from "../core/utils"; import { allApplicationSettings, enumCategories } from "../profile/application_settings"; @@ -28,10 +29,18 @@ export class SettingsState extends TextualGameState { } <div class="other"> - <button class="styledButton about">${T.about.title}</button> + ${ + G_CHINA_VERSION || G_WEGAME_VERSION + ? "" + : ` + <button class="styledButton about">${T.about.title}</button> + <button class="styledButton privacy">Privacy Policy</button> + +` + } <div class="versionbar"> - <div class="buildVersion">${T.global.loading} ...</div> + ${G_WEGAME_VERSION ? "" : `<div class="buildVersion">${T.global.loading} ...</div>`} </div> </div> </div> @@ -68,6 +77,10 @@ export class SettingsState extends TextualGameState { for (let i = 0; i < allApplicationSettings.length; ++i) { const setting = allApplicationSettings[i]; + if ((G_CHINA_VERSION || G_WEGAME_VERSION) && setting.id === "language") { + continue; + } + categoriesHTML[setting.categoryId] += setting.getHtml(this.app); } @@ -78,6 +91,9 @@ export class SettingsState extends TextualGameState { renderBuildText() { const labelVersion = this.htmlElement.querySelector(".buildVersion"); + if (!labelVersion) { + return; + } const lastBuildMs = new Date().getTime() - G_BUILD_TIME; const lastBuildText = formatSecondsToTimeAgo(lastBuildMs / 1000.0); @@ -94,9 +110,15 @@ export class SettingsState extends TextualGameState { onEnter(payload) { this.renderBuildText(); - this.trackClicks(this.htmlElement.querySelector(".about"), this.onAboutClicked, { - preventDefault: false, - }); + + if (!G_CHINA_VERSION && !G_WEGAME_VERSION) { + this.trackClicks(this.htmlElement.querySelector(".about"), this.onAboutClicked, { + preventDefault: false, + }); + this.trackClicks(this.htmlElement.querySelector(".privacy"), this.onPrivacyClicked, { + preventDefault: false, + }); + } const keybindingsButton = this.htmlElement.querySelector(".editKeybindings"); @@ -131,6 +153,10 @@ export class SettingsState extends TextualGameState { initSettings() { allApplicationSettings.forEach(setting => { + if ((G_CHINA_VERSION || G_WEGAME_VERSION) && setting.id === "language") { + return; + } + /** @type {HTMLElement} */ const element = this.htmlElement.querySelector("[data-setting='" + setting.id + "']"); setting.bind(this.app, element, this.dialogs); @@ -163,6 +189,10 @@ export class SettingsState extends TextualGameState { this.moveToStateAddGoBack("AboutState"); } + onPrivacyClicked() { + this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.privacyPolicy); + } + onKeybindingsClicked() { this.moveToStateAddGoBack("KeybindingsState"); } diff --git a/src/js/states/wegame_splash.js b/src/js/states/wegame_splash.js new file mode 100644 index 00000000..a5483112 --- /dev/null +++ b/src/js/states/wegame_splash.js @@ -0,0 +1,27 @@ +import { GameState } from "../core/game_state"; + +export class WegameSplashState extends GameState { + constructor() { + super("WegameSplashState"); + } + + getInnerHTML() { + return ` + <div class="wrapper"> + <strong>健康游戏忠告</strong> + <div>抵制不良游戏,拒绝盗版游戏。</div> + <div>注意自我保护,谨防受骗上当。</div> + <div>适度游戏益脑,沉迷游戏伤身。</div> + <div>合理安排时间,享受健康生活。</div> + </div> +`; + } + onEnter() { + setTimeout( + () => { + this.app.stateMgr.moveToState("PreloadState"); + }, + G_IS_DEV ? 1 : 6000 + ); + } +} diff --git a/sync-translations.js b/sync-translations.js index 356a4aba..f4944045 100644 --- a/sync-translations.js +++ b/sync-translations.js @@ -18,7 +18,7 @@ const original = YAML.parse(originalContents); const placeholderRegexp = /[[<]([a-zA-Z_0-9/-_]+?)[\]>]/gi; -function match(originalObj, translatedObj, path = "/") { +function match(originalObj, translatedObj, path = "/", ignorePlaceholderMismatch = false) { for (const key in originalObj) { if (!translatedObj.hasOwnProperty(key)) { console.warn(" | Missing key", path + key); @@ -34,13 +34,12 @@ function match(originalObj, translatedObj, path = "/") { } if (typeof valueOriginal === "object") { - match(valueOriginal, valueMatching, path + key + "/"); + match(valueOriginal, valueMatching, path + key + "/", ignorePlaceholderMismatch); } else if (typeof valueOriginal === "string") { - // @todo const originalPlaceholders = matchAll(valueOriginal, placeholderRegexp).toArray(); const translatedPlaceholders = matchAll(valueMatching, placeholderRegexp).toArray(); - if (originalPlaceholders.length !== translatedPlaceholders.length) { + if (!ignorePlaceholderMismatch && originalPlaceholders.length !== translatedPlaceholders.length) { console.warn( " | Mismatching placeholders in", path + key, @@ -66,12 +65,13 @@ function match(originalObj, translatedObj, path = "/") { } for (let i = 0; i < files.length; ++i) { - const filePath = path.join(__dirname, "translations", files[i]); - console.log("Processing", files[i]); + const filename = files[i]; + const filePath = path.join(__dirname, "translations", filename); + console.log("Processing", filename); const translatedContents = fs.readFileSync(filePath).toString("utf-8"); const json = YAML.parse(translatedContents); - match(original, json, "/"); + match(original, json, "/", filename.toLowerCase().includes("zh-cn")); const stringified = YAML.stringify(json, { indent: 4, diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 305c9b88..19a179d2 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -6,45 +6,19 @@ steamPage: لعبة شيبز (أشكال) هي لعبة مريحة تقوم فيها ببناء مصانع ووتشغيلها آليا لصناعة أشكال هندسية. - مع التقدم في المستوى، تزداد الأشكال تعقيداً، فيتوجب عليك التوسع في الخريطة اللانهائية، وذلك ليس كافياً للتقدم في مستوى اللعبة حيث عليك صناعة المزيد بأضعاف مضاعفة لتلبية الطلب، الشيء - الوحيد الذي يمكنه مساعدتك هو التوسع. + مع التقدم في المستوى، تزداد الأشكال تعقيداً، فيتوجب عليك التوسع في الخريطة اللانهائية، وذلك ليس كافياً للتقدم في مستوى اللعبة حيث عليك صناعة المزيد بأضعاف مضاعفة لتلبية الطلب، الشيء الوحيد الذي يمكنه مساعدتك هو التوسع. بينما في البداية تقوم بصناعة أشكال مختلفة، تتطلب منك المراحل المتقدمة تلوين هذه الأشكال، حيث يتوجب عليك استخراج وخلط الألوان. عند شراءك اللعبة على ستيم (Steam) تحصل على الإصدار الكامل للعبة، ولكن يمكن أيضاً لعبة نسخة تجريبية على موقع shapez.io ثم يمكنك القرار لاحقا - title_advantages: ميزات نسخة الحاسوب - advantages: - - <b>12 New Level</b> for a total of 26 levels - - <b>18 New Buildings</b> for a fully automated factory! - - <b>Unlimited Upgrade Tiers</b> for many hours of fun! - - <b>Wires Update</b> for an entirely new dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. - - Be sure to check out my trello board for the full roadmap! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Loading error: Error @@ -76,6 +50,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: Demo Version intro: Get the standalone to unlock all features! @@ -95,6 +70,12 @@ mainMenu: savegameLevel: Level <x> savegameLevelUnknown: Unknown Level savegameUnnamed: Unnamed + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -108,6 +89,9 @@ dialogs: viewUpdate: View Update showUpgrades: Show Upgrades showKeybindings: Show Keybindings + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Import Error text: "Failed to import your savegame:" @@ -205,6 +189,70 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Move @@ -226,6 +274,7 @@ ingame: clearSelection: Clear selection pipette: Pipette switchLayers: Switch layers + clearBelts: Clear belts colors: red: Red green: Green @@ -355,9 +404,6 @@ ingame: buildings: title: 18 New Buildings desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! upgrades: title: ∞ Upgrade Tiers desc: This demo version has only 5! @@ -373,6 +419,50 @@ ingame: support: title: Support me desc: I develop it in my spare time! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Belts, Distributor & Tunnels @@ -579,6 +669,18 @@ buildings: name: Item Producer description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Cutting Shapes @@ -689,8 +791,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the @@ -902,7 +1004,12 @@ settings: title: Map Resources Size description: Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Keybindings hint: "Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different @@ -976,6 +1083,15 @@ keybindings: comparator: Compare item_producer: Item Producer (Sandbox) copyWireValue: "Wires: Copy value below cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: About this Game body: >- @@ -1061,3 +1177,88 @@ tips: - Press F4 to show your FPS and Tick Rate. - Press F4 twice to show the tile of your mouse and camera. - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-cat.yaml b/translations/base-cat.yaml index 4d4954b3..324f85ce 100644 --- a/translations/base-cat.yaml +++ b/translations/base-cat.yaml @@ -14,40 +14,14 @@ steamPage: Mentre que al principi només processes formes, més envant les hauràs de colorejar, pel que necessitaràs extreure y mesclar colors! Si compres el joc a Steam tendràs accés al joc complet, però també pots jugar a la demo a shapez.io primer i decidir-te més tard! - title_advantages: "Avantatges de la versió completa:" - advantages: - - <b>12 Nous nivells</b> per a un total de 26 nivells - - <b>18 Nous edificis</b> per construir una fàbrica completament - automatitzada! - - <b>20 Nivells de millora</b> per més hores de diversió! - - <b>Actualització de Cablejat</b> per a una dimensió totalment nova! - - <b>Mode Oscur</b>! - - Pots guardar jocs il·limitats - - Marcadors il·limitats - - Em dones suport! ❤️ - title_future: Contingut Planejat - planned: - - Llibreria de plànols (Exclusiu de la versió completa) - - Trofeus d'Steam - - Mode Puzzle - - Minimapa - - Mods - - Mode Sandbox - - ... i mot més! - title_open_source: Aquest joc és de codi obert! - title_links: Enllaços - links: - discord: Discord Oficial - roadmap: Full de ruta - subreddit: Subreddit - source_code: Codi font (GitHub) - translate: Ajuda a traduir-lo - text_open_source: >- - Qualsevol pot contribuir, i estic activament involucrat en la comunitat - i intent prestar atenció a tots els suggeriments i tenir en compte tots - el comentaris. - - Assegura't de mirar el meu tauler de Trello per al full de ruta complet! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Carregant error: Error @@ -79,6 +53,7 @@ global: escape: ESC shift: SHIFT space: ESPAI + loggingIn: Logging in demoBanners: title: Demo - Versió de prova intro: Aconsegueix el joc complet per obtenir totes les característiques! @@ -99,6 +74,12 @@ mainMenu: savegameLevel: Nivell <x> savegameLevelUnknown: Nivell desconegut savegameUnnamed: Unnamed + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -112,6 +93,9 @@ dialogs: viewUpdate: Veure actualitzacions showUpgrades: Mostrar millores showKeybindings: Mostrar dreceres de teclat + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Error en importar text: "Ha ocurrit un error intentant importar la teva partida:" @@ -213,6 +197,70 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Moure @@ -234,6 +282,7 @@ ingame: clearSelection: Buidar selecció pipette: Pipeta switchLayers: Intercanviar capes + clearBelts: Clear belts colors: red: Roig green: Verd @@ -365,9 +414,6 @@ ingame: buildings: title: 18 Nous edificis desc: Automatitza la teva fàbrica completament! - savegames: - title: Guarda ∞ partides - desc: Tantes com vulguis! upgrades: title: ∞ Nivells de millora desc: La versió demo només en té 5! @@ -383,6 +429,50 @@ ingame: support: title: Dona'm suport desc: EL desenvolupo en el meu temps lliure! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Cintes transportadores, Distribuidors i Túnels @@ -595,6 +685,18 @@ buildings: name: Productor d'ítems description: Només avaliable en mode "sandbox", emet la senyal de la capa de cablejat a la capa normal. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Tallar figures @@ -929,7 +1031,12 @@ settings: title: Map Resources Size description: Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Combinacions de tecles hint: "Tip: Assegura't d'emprar CTRL, SHIFT i ALT! Et permeten col·locar @@ -1003,6 +1110,15 @@ keybindings: comparator: Comparador item_producer: Productor d'items (Sandbox) copyWireValue: "Cables: Copiar valor davall el cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: Sobre aquest Joc body: >- @@ -1103,3 +1219,88 @@ tips: - Premeu F4 per mostrar la vostra tarifa FPS i Tick. - Premeu F4 dues vegades per mostrar el mosaic del ratolí i la càmera. - Podeu fer clic a una forma fixada al costat esquerre per desenganxar-la. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-cz.yaml b/translations/base-cz.yaml index 2f2909f0..245473d4 100644 --- a/translations/base-cz.yaml +++ b/translations/base-cz.yaml @@ -5,46 +5,19 @@ steamPage: intro: >- Máte rádi automatizaci? Tak to jste na správném místě! - shapez.io je relaxační hra, ve které musíte stavět továrny na automatizaci výroby geometrických tvarů. Jak se zvyšuje úroveň, tvary se stávají - stále složitějšími a vy se musíte rozšířit po nekonečné mapě. + shapez.io je relaxační hra, ve které musíte stavět továrny na automatizaci výroby geometrických tvarů. Jak se zvyšuje úroveň, tvary se stávají stále složitějšími a vy se musíte rozšířit po nekonečné mapě. - A jako by to nestačilo, musíte také produkovat exponenciálně více, abyste uspokojili požadavky - jediná věc, která pomáhá, je škálování! Zatímco - na začátku tvary pouze zpracováváte, později je musíte obarvit - těžbou a mícháním barev! + A jako by to nestačilo, musíte také produkovat exponenciálně více, abyste uspokojili požadavky - jediná věc, která pomáhá, je škálování! Zatímco na začátku tvary pouze zpracováváte, později je musíte obarvit - těžbou a mícháním barev! Koupením hry na platformě Steam získáte přístup k plné verzi hry, ale také můžete nejdříve hrát demo verzi na shapez.io a až potom se rozhodnout! - title_advantages: Výhody samostatné verze hry - advantages: - - <b>12 Nových úrovní</b> z celkových 26 úrovní - - <b>18 Nových budov</b> pro plně automatizovanou továrnu! - - <b>20 Řad vylepšení</b> pro mnoho hodin zábavy! - - <b>Wires Update</b> pro zcela novou dimenzi! - - <b>Tmavý mód</b>! - - Neomezený počet uložených her - - Neomezené značky - - Podpořte mě! ❤️ - title_future: Plánovaný obsah - planned: - - Blueprintová knihovna - - Steam Achievements - - Puzzle mód - - Minimapa - - Módy - - Sandbox mód - - ... a mnohem více! - title_open_source: Tato hra je open source! - text_open_source: >- - Kdokoli může přispět, jsem aktivně zapojený do komunity, pokouším se - zkontrolovat všechny návrhy a vzít v úvahu zpětnou vazbu všude, kde je - to možné. - - Nezapomeňte se podívat na můj trello board pro kompletní plán! - title_links: Odkazy - links: - discord: Oficiální Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Zdrojový kód (GitHub) - translate: Pomozte přeložit hru! + what_others_say: Co o shapez.io říkají lidé + nothernlion_comment: Tato hra je úžasná - Užívám si čas strávený hraním této + hry, jen strašně rychle utekl. + notch_comment: Sakra. Opravdu bych měl jít spát, ale myslím si, že jsem zrovna + přišel na to, jak v shapez.io vytvořit počítač. + steam_review_comment: Tato hra mi ukradla život a já ho nechci zpět. Odpočinková + factory hra, která mi nedovolí přestat dělat mé výrobní linky více + efektivní. global: loading: Načítání error: Chyba @@ -76,6 +49,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Přihlašuji demoBanners: title: Demo verze intro: Získejte plnou verzi pro odemknutí všech funkcí a obsahu! @@ -96,6 +70,12 @@ mainMenu: savegameLevel: Úroveň <x> savegameLevelUnknown: Neznámá úroveň savegameUnnamed: Nepojmenovaný + puzzleMode: Puzzle mód + back: Zpět + puzzleDlcText: Baví vás zmenšování a optimalizace továren? Pořiďte si nyní + Puzzle DLC na Steamu pro ještě více zábavy! + puzzleDlcWishlist: Přidejte si nyní na seznam přání! + puzzleDlcViewNow: Zobrazit DLC dialogs: buttons: ok: OK @@ -109,6 +89,9 @@ dialogs: viewUpdate: Zobrazit aktualizaci showUpgrades: Zobrazit vylepšení showKeybindings: Zobrazit klávesové zkratky + retry: Opakovat + continue: Pokračovat + playOffline: Hrát offline importSavegameError: title: Chyba Importu text: "Nepovedlo se importovat vaši uloženou hru:" @@ -200,12 +183,75 @@ dialogs: desc: Zde můžete přejmenovat svoji uloženou hru. tutorialVideoAvailable: title: Dostupný tutoriál - desc: Pro tuto úroveň je k dispozici tutoriál! Chtěli byste se na - něj podívat? + desc: Pro tuto úroveň je k dispozici tutoriál! Chtěli byste se na něj podívat? tutorialVideoAvailableForeignLanguage: title: Dostupný tutoriál - desc: Pro tuto úroveň je k dispozici tutoriál, ale je dostupný - pouze v angličtině. Chtěli byste se na něj podívat? + desc: Pro tuto úroveň je k dispozici tutoriál, ale je dostupný pouze v + angličtině. Chtěli byste se na něj podívat? + editConstantProducer: + title: Nastavte tvar + puzzleLoadFailed: + title: Načítání puzzle selhalo + desc: "Bohužel nebylo možné puzzle načíst:" + submitPuzzle: + title: Odeslat puzzle + descName: "Pojmenujte svůj puzzle:" + descIcon: "Prosím zadejte unikátní krátký klíč, který bude zobrazen jako ikona + vašeho puzzle (Ten můžete vygenerovat <link>zde</link>, nebo vyberte + jeden z níže náhodně vybraných tvarů):" + placeholderName: Název puzzlu + puzzleResizeBadBuildings: + title: Změna velikosti není možná + desc: Zónu není možné více zmenšit, protože by některé budovy byly mimo zónu. + puzzleLoadError: + title: Špatný puzzle + desc: "Načítání puzzlu selhalo:" + offlineMode: + title: Offline mód + desc: Nebylo možné kontaktovat herní servery, proto musí hra běžet v offline + módu. Ujistěte se, že máte aktivní připojení k internetu. + puzzleDownloadError: + title: Chyba stahování + desc: "Stažení puzzlu selhalo:" + puzzleSubmitError: + title: Chyba odeslání + desc: "Odeslání puzzlu selhalo:" + puzzleSubmitOk: + title: Puzzle publikováno + desc: Gratuluji! Vaše puzzle bylo publikováno a je dostupné pro ostatní hráče. + Můžete ho najít v sekci "Moje puzzly". + puzzleCreateOffline: + title: Offline mód + desc: Jelikož jste offline, nebudete moci ukládat a/nebo publikovat vaše puzzle. + Chcete přesto pokračovat? + puzzlePlayRegularRecommendation: + title: Doporučení + desc: <strong>Důrazně</strong> doporučujeme průchod základní hrou nejméně do + úrovně 12 před vstupem do puzzle DLC, jinak můžete narazit na + mechaniku hry, se kterou jste se ještě nesetkali. Chcete přesto + pokračovat? + puzzleShare: + title: Krátký klíč zkopírován + desc: Krátký klíč tohoto puzzlu (<key>) byl zkopírován do vaší schránky! Může + být vložen v puzzle menu pro přístup k danému puzzlu. + puzzleReport: + title: Nahlásit puzzle + options: + profane: Rouhavý + unsolvable: Nelze vyřešit + trolling: Trolling + puzzleReportComplete: + title: Děkujeme za vaši zpětnou vazbu! + desc: Toto puzzle bylo označeno. + puzzleReportError: + title: Nahlášení selhalo + desc: "Vaše nahlášení nemohlo být zpracováno:" + puzzleLoadShortKey: + title: Vložte krátký klíč + desc: Vložte krátký klíč pro načtení příslušného puzzlu. + puzzleDelete: + title: Smazat puzzle? + desc: Jste si jisti, že chcete smazat '<title>'? Tato akce je nevratná! ingame: keybindingsOverlay: moveMap: Posun mapy @@ -227,6 +273,7 @@ ingame: clearSelection: Zrušit výběr pipette: Kapátko switchLayers: Změnit vrstvy + clearBelts: Clear belts buildingPlacement: cycleBuildingVariants: Zmáčkněte <key> pro přepínání mezi variantami. hotkeyLabel: "Klávesová zkratka: <key>" @@ -291,8 +338,8 @@ ingame: interactiveTutorial: title: Tutoriál hints: - 1_1_extractor: Umístěte <strong>extraktor</strong> na naleziště<strong>kruhového - tvaru</strong> a vytěžte jej! + 1_1_extractor: Umístěte <strong>extraktor</strong> na naleziště + <strong>kruhového tvaru</strong> a vytěžte jej! 1_2_conveyor: "Připojte extraktor pomocí <strong>dopravníkového pásu</strong> k vašemu HUBu!<br><br>Tip: <strong>Klikněte a táhněte</strong> myší pro položení více pásů!" @@ -300,22 +347,23 @@ ingame: a pásy, abyste dosáhli cíle rychleji.<br><br>Tip: Chcete-li umístit více extraktorů, podržte <strong>SHIFT</strong>. Pomocí <strong>R</strong> je můžete otočit." - 2_1_place_cutter: "Teď umístěte <strong>pilu</strong> k rozřezání kruhového tvaru na dvě - poloviny!<br><br> PS: Pila řeže tvary vždy <strong>svisle na - poloviny</strong> bez ohledu na její orientaci." - 2_2_place_trash: - Pila se může <strong>zaseknout a zastavit vaši produkci</strong>!<br><br> Použijte - <strong>koš</strong> ke smazání (!) nepotřebných - částí tvarů. - 2_3_more_cutters: "Dobrá práce! Teď postavte <strong>více pil</strong> pro zrychlení - tohoto pomalého procesu!<br><br> PS: Použijte <strong>0-9 - na klávesnici</strong> pro rychlejší přístup k budovám!" + 2_1_place_cutter: "Teď umístěte <strong>pilu</strong> k rozřezání kruhového + tvaru na dvě poloviny!<br><br> PS: Pila řeže tvary vždy + <strong>svisle na poloviny</strong> bez ohledu na její + orientaci." + 2_2_place_trash: Pila se může <strong>zaseknout a zastavit vaši + produkci</strong>!<br><br> Použijte <strong>koš</strong> ke + smazání (!) nepotřebných částí tvarů. + 2_3_more_cutters: "Dobrá práce! Teď postavte <strong>více pil</strong> pro + zrychlení tohoto pomalého procesu!<br><br> PS: Použijte + <strong>0-9 na klávesnici</strong> pro rychlejší přístup k + budovám!" 3_1_rectangles: "Teď vytěžte nějaké obdélníkové tvary! <strong>Postavte 4 - extraktory</strong> a připojte je k HUBu.<br><br> PS: - Podržením klávesy <strong>SHIFT</strong> a tažením pásu aktivujete + extraktory</strong> a připojte je k HUBu.<br><br> PS: Podržením + klávesy <strong>SHIFT</strong> a tažením pásu aktivujete plánovač pásů!" - 21_1_place_quad_painter: Postavte <strong>čtyřnásobný barvič</strong> a získejte nějaké - <strong>kruhové tvary</strong>, <strong>bílou</strong> a + 21_1_place_quad_painter: Postavte <strong>čtyřnásobný barvič</strong> a získejte + nějaké <strong>kruhové tvary</strong>, <strong>bílou</strong> a <strong>červenou</strong> barvu! 21_2_switch_to_wires: Změňte vrstvy na vrstvu kabelů stisknutím klávesy <strong>E</strong>!<br><br> Pak <strong>připojte všechny čtyři @@ -357,9 +405,6 @@ ingame: buildings: title: 18 Nových budov desc: Plně automatizujte svou továrnu! - savegames: - title: ∞ Uložených her - desc: Tolik, kolik vaše srdce touží! upgrades: title: ∞ vylepšení desc: Tato demo verze má pouze 5! @@ -375,6 +420,50 @@ ingame: support: title: Podpořte mě desc: Vyvíjím to ve svém volném čase! + achievements: + title: Achievements + desc: Získejte je všechny! + puzzleEditorSettings: + zoneTitle: Zóna + zoneWidth: Šířka + zoneHeight: Výška + trimZone: Upravit zónu + clearItems: Vymazat tvary + share: Sdílet + report: Nahlásit + clearBuildings: Vymazat budovy + resetPuzzle: Resetovat puzzle + puzzleEditorControls: + title: Puzzle editor + instructions: + - 1. Umístěte <strong>výrobníky</strong>, které poskytnou hráči + tvary a barvy. + - 2. Sestavte jeden či více tvarů, které chcete, aby hráč vytvořil a + doručte to do jednoho či více <strong>příjemců cílů</strong>. + - 3. Jakmile příjemce cílů dostane určitý tvar za určitý časový + úsek, <strong>uloží se jako cíl</strong>, který hráč musí později + vyprodukovat (Označeno <strong>zeleným odznakem</strong>). + - 4. Kliknutím na <strong>tlačítko zámku</strong> na určité budově + dojde k její deaktivaci. + - 5. Jakmile kliknete na ověření, vaše puzzle bude ověřeno a můžete + ho publikovat. + - 6. Během publikace budou kromě výrobníků a příjemců cílů + <strong>všechny budovy odstraněny</strong> - To je ta část, na + kterou má koneckonců každý hráč přijít sám. :) + puzzleCompletion: + title: Puzzle dokončeno! + titleLike: "Klikněte na srdíčko, pokud se vám puzzle líbilo:" + titleRating: Jak obtížný ti tento puzzle přišel? + titleRatingDesc: Vaše hodnocení nám pomůže podat vám v budoucnu lepší návrhy + continueBtn: Hrát dál + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Autor + shortKey: Krátký klíč + rating: Úrověn obtížnosti + averageDuration: Prům. doba trvání + completionRate: Míra dokončení shopUpgrades: belt: name: Pásy, distribuce a tunely @@ -404,7 +493,7 @@ buildings: name: Extraktor description: Umístěte na naleziště tvaru nebo barvy pro zahájení těžby. chainable: - name: Extraktor (Navazující) + name: Extraktor (Řetěz) description: Umístěte na naleziště tvaru nebo barvy pro zahájení těžby. Lze zapojit po skupinách. underground_belt: @@ -430,7 +519,7 @@ buildings: name: Rotor description: Otáčí tvary o 90 stupňů po směru hodinových ručiček. ccw: - name: Rotor (opačný) + name: Rotor (Opačný) description: Otáčí tvary o 90 stupňů proti směru hodinových ručiček. rotate180: name: Rotor (180°) @@ -449,10 +538,10 @@ buildings: name: Barvič description: Obarví celý tvar v levém vstupu barvou z pravého vstupu. double: - name: Barvič (dvojnásobný) + name: Barvič (2x) description: Obarví tvary z levých vstupů barvou z horního vstupu. quad: - name: Barvič (čtyřnásobný) + name: Barvič (4x) description: Umožňuje obarvit každou čtvrtinu tvaru individuálně. Jen čtvrtiny se vstupy barev s <strong>logickým signálem</strong> na vrstvě kabelů budou obarveny! @@ -475,16 +564,16 @@ buildings: name: Vyvažovač description: Multifunkční - Rovnoměrně rozděluje vstupy na výstupech. merger: - name: Spojovač (kompaktní) + name: Spojovač description: Spojí dva pásy do jednoho. merger-inverse: - name: Spojovač (kompaktní) + name: Spojovač description: Spojí dva pásy do jednoho. splitter: - name: Rozdělovač (kompaktní) + name: Rozdělovač description: Rozdělí jeden pás na dva. splitter-inverse: - name: Rozdělovač (kompaktní) + name: Rozdělovač description: Rozdělí jeden pás na dva. storage: default: @@ -558,12 +647,12 @@ buildings: name: Virtuální rotor description: Virtuálně otáčí tvary o 90 stupňů po směru hodinových ručiček. unstacker: - name: Virtuální extrahátor + name: Virt. extrahátor description: Virtuálně extrahuje nejvyšší vrstvu do pravého výstupu a zbývající do levé. stacker: - name: Virtuální kombinátor - description: Virtuálně Spojí tvary dohromady. Pokud nemohou být spojeny, pravý + name: Virt. kombinátor + description: Virtuálně spojí tvary dohromady. Pokud nemohou být spojeny, pravý tvar je položen na levý. painter: name: Virtuální barvič @@ -573,6 +662,18 @@ buildings: name: Výrobník předmětů description: Dostupný pouze v sandboxovém módu, vydává daný signál z vrstvy kabelů na běžnou vrstvu. + constant_producer: + default: + name: Výrobník + description: Neustále vydává zadaný tvar či barvu. + goal_acceptor: + default: + name: Příjemce cílů + description: Doručte tvary příjemci cílů, abyste je nastavili jako cíl. + block: + default: + name: Blok + description: Umožňuje zablokovat políčko. storyRewards: reward_cutter_and_trash: title: Řezání tvarů @@ -611,12 +712,12 @@ storyRewards: budovami a pásy. reward_rotater_ccw: title: Otáčení II - desc: Odemkli jste variantu <strong>rotoru</strong> - Umožňuje vám otáčet - proti směru hodinových ručiček. Vyberte rotor a <strong>zmáčkněte - 'T' pro přepnutí mezi variantami</strong>! + desc: Odemkli jste variantu <strong>rotoru</strong> - Umožňuje vám otáčet proti + směru hodinových ručiček. Vyberte rotor a <strong>zmáčkněte 'T' pro + přepnutí mezi variantami</strong>! reward_miner_chainable: - title: Napojovací extraktor - desc: "Právě jste odemkli <strong>napojovací extraktor</strong>! Může + title: Řetězový extraktor + desc: "Právě jste odemkli <strong>řetězový extraktor</strong>! Může <strong>předat své zdroje</strong> ostatním extraktorům, čímž můžete efektivněji těžit více zdrojů!<br><br> PS: Starý extraktor bude od teď nahrazen ve vašem panelu nástrojů!" @@ -641,12 +742,13 @@ storyRewards: reward_freeplay: title: Volná hra desc: Zvládli jste to! Odemkli jste <strong>mód volné hry</strong>! To znamená, - že od teď budou tvary <strong>náhodně</strong> generovány!<br><br> Vzhledem k - tomu, že Hub nadále potřebuje <strong>propustnost</strong>, - především doporučuji postavit továrnu, která automaticky doručí - požadovaný tvar!<br><br> Hub vysílá požadovaný tvar na vrstvu - kabelů, takže jediné co musíte udělat, je analyzovat tvar a - automaticky nastavit svou továrnu dle této analýzy. + že od teď budou tvary <strong>náhodně</strong> generovány!<br><br> + Vzhledem k tomu, že Hub nadále potřebuje + <strong>propustnost</strong>, především doporučuji postavit továrnu, + která automaticky doručí požadovaný tvar!<br><br> Hub vysílá + požadovaný tvar na vrstvu kabelů, takže jediné co musíte udělat, je + analyzovat tvar a automaticky nastavit svou továrnu dle této + analýzy. reward_blueprints: title: Plány desc: Nyní můžete <strong>kopírovat a vkládat</strong> části továrny! Vyberte @@ -656,8 +758,8 @@ storyRewards: (Jsou to ty které jste právě dodali). no_reward: title: Další úroveň - desc: "Tato úroveň vám nic neodemkla, ale s další to přijde! <br><br> PS: - Radši neničte vaše stávající továrny - budete potřebovat + desc: "Tato úroveň vám nic neodemkla, ale s další to přijde! <br><br> PS: Radši + neničte vaše stávající továrny - budete potřebovat <strong>všechny</strong> produkované tvary později na <strong>odemčení vylepšení</strong>!" no_reward_freeplay: @@ -665,8 +767,8 @@ storyRewards: desc: Gratuluji! Mimochodem, více obsahu najdete v plné verzi! reward_balancer: title: Vyvažovač - desc: Multifunkční <strong>vyvažovač</strong> byl odemknut - Může - být použit ke zvětšení vašich továren <strong>rozdělováním a spojováním + desc: Multifunkční <strong>vyvažovač</strong> byl odemknut - Může být použit ke + zvětšení vašich továren <strong>rozdělováním a spojováním předmětů</strong> na několik pásu! reward_merger: title: Kompaktní spojovač @@ -717,10 +819,10 @@ storyRewards: desc: "Právě jste odemkli <strong>vrstvu kabelů</strong>: Je to samostatná vrstva navíc oproti běžné vrstvě a představuje spoustu nových možností!<br><br> Do začátku jsem zpřístupnil <strong>čtyřnásobný - barvič</strong> - Připojte vstupy, které byste chtěli obarvit - na vrstvě kabelů!<br><br> Pro přepnutí mezi vrstvami stiskněte klávesu - <strong>E</strong>. <br><br> PS: <strong>Aktivujte nápovědy</strong> v - nastavení pro spuštění tutoriálu o kabelech!" + barvič</strong> - Připojte vstupy, které byste chtěli obarvit na + vrstvě kabelů!<br><br> Pro přepnutí mezi vrstvami stiskněte klávesu + <strong>E</strong>. <br><br> PS: <strong>Aktivujte nápovědy</strong> + v nastavení pro spuštění tutoriálu o kabelech!" reward_filter: title: Filtr předmětů desc: Právě jste odemkli <strong>filtr předmětů</strong>! Nasměruje předměty buď @@ -794,8 +896,9 @@ settings: SHIFT. offerHints: title: Tipy & Nápovědy - description: Pokud bude zapnuté, budou se ve hře zobrazovat tipy a nápovědy. Také - skryje určité elementy na obrazovce pro jednodušší osvojení hry. + description: Pokud bude zapnuté, budou se ve hře zobrazovat tipy a nápovědy. + Také skryje určité elementy na obrazovce pro jednodušší osvojení + hry. movementSpeed: title: Rychlost kamery description: Mění, jak rychle se kamera posouvá při použití klávesnice. @@ -862,8 +965,8 @@ settings: title: Uvolní kurzor při kliknutím pravým tlačítkem description: Povoleno dle výchozího nastavení, uvolní kurzor pokaždé co kliknete pravým tlačítkem, když máte budovu vybranou pro pokládání. Při - vypnutí, můžete smazat budovy při kliknutí pravým tlačítkem spolu - s položením dalších budov. + vypnutí, můžete smazat budovy při kliknutí pravým tlačítkem + spolu s položením dalších budov. lowQualityTextures: title: Nižší kvalita textur (Horší vzhled) description: Používá nižší kvalitu textur pro zlepšení výkonu. Toto nastavení @@ -887,13 +990,17 @@ settings: obrazovky. Rychlost záleží na nastavení rychlosti pohybu. zoomToCursor: title: Přiblížení ke kurzoru - description: Při zapnutí dojde k přibližování ve směru polohy - kurzoru, jinak ve středu obrazovky. + description: Při zapnutí dojde k přibližování ve směru polohy kurzoru, jinak ve + středu obrazovky. mapResourcesScale: title: Velikost zdrojů na mapě - description: Určuje velikost ikon tvarů na náhledu mapy (při - oddálení). + description: Určuje velikost ikon tvarů na náhledu mapy (při oddálení). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Klávesové zkratky hint: "Tip: Nezapomeňte používat CTRL, SHIFT a ALT! Díky nim můžete měnit způsob @@ -967,22 +1074,29 @@ keybindings: comparator: Porovnávač item_producer: Výrobník předmětů (Sandbox) copyWireValue: "Kabely: Zkopírovat hodnotu pod kurzorem" + rotateToUp: "Otočit: Nahoru" + rotateToDown: "Otočit: Dolů" + rotateToRight: "Otočit: Doprava" + rotateToLeft: "Otočit: Doleva" + constant_producer: Výrobník + goal_acceptor: Přijemce cílů + block: Blok + massSelectClear: Vymazat pásy + showShapeTooltip: Show shape output tooltip about: title: O hře body: >- - Tato hra je open source. Je vyvíjená <a - href="https://github.com/tobspr" target="_blank">Tobiasem Springerem</a> - (česky neumí, ale je fakt frajer :) ).<br><br> + Tato hra je open source. Je vyvíjená <a href="https://github.com/tobspr" + target="_blank">Tobiasem Springerem</a> (česky neumí, ale je fakt frajer + :) ).<br><br> Pokud se chceš na hře podílet, podívej se na <a href="<githublink>" target="_blank">shapez.io na githubu</a>.<br><br> - Tato hra by nebyla možná ani bez skvělé Discord komunity okolo Tobiasových her - Vážně by ses měl přijít mrknout na - <a href="<discordlink>" target="_blank">Discord server</a>!<br><br> + Tato hra by nebyla možná ani bez skvělé Discord komunity okolo Tobiasových her - Vážně by ses měl přijít mrknout na <a href="<discordlink>" target="_blank">Discord server</a>!<br><br> Soundtrack udělal <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Je úžasnej.<br><br> - V neposlední řadě by Tobias (já jen tlumočím) rád poděkoval skvělému kamarádovi - <a href="https://github.com/niklas-dahl" target="_blank">Niklasi</a> - Bez hodin strávených u Factoria by tato hra nikdy neexistovala. + V neposlední řadě by Tobias (já jen tlumočím) rád poděkoval skvělému kamarádovi <a href="https://github.com/niklas-dahl" target="_blank">Niklasi</a> - Bez hodin strávených u Factoria by tato hra nikdy neexistovala. changelog: title: Seznam změn demo: @@ -1008,7 +1122,7 @@ tips: - Můžete proplétat různé úrovně tunelů. - Snažte se postavit kompaktní továrny - vyplatí se to! - Barvič má zrcadlově otočenou variantu, kterou můžete vybrat klávesou - <b>T</b> + <b>T</b>. - Užití správné kombinace vylepšení maximalizuje efektivitu. - Na maximální úrovní, 5 extraktorů zaplní jeden celý pás. - Nezapomeňte na tunely! @@ -1019,7 +1133,7 @@ tips: - Smícháním všech 3 barev získáte bílou barvu. - Sklad preferuje levý výstup. - Investujte čas pro vytvoření opakovatelných designů - ulehčí vám to - pozdější expanzy! + pozdější expanzi! - Držení klávesy <b>SHIFT</b> umožňuje postavit více budov stejného typu. - Můžete podržet klávesu <b>ALT</b> k obrácení směru pokládaných pásů. - Efektivita je klíčová! @@ -1063,3 +1177,90 @@ tips: - Stisknutím F4 zobrazíte FPS a rychlost ticků. - Stisknutím F4 dvakrát zobrazíte souřadnici myši a kamery. - Můžete kliknout na připínáček vlevo vedle připnutého tvaru k jeho odepnutí. +puzzleMenu: + play: Hrát + edit: Upravit + title: Puzzle mód + createPuzzle: Vytvořit puzzle + loadPuzzle: Načíst + reviewPuzzle: Ověření a publikace + validatingPuzzle: Ověřování puzzlu + submittingPuzzle: Odesílání puzzlu + noPuzzles: V této sekci momentálně nejsou žádné puzzly. + categories: + levels: Úrovně + new: Nové + top-rated: Nejlépe hodnocené + mine: Moje puzzly + easy: Lehké + hard: Těžké + completed: Dokončeno + medium: Střední + official: Oficiální + trending: Populární denně + trending-weekly: Populární týdně + categories: Kategorie + difficulties: Dle obtížnosti + account: Moje puzzly + search: Vyhledávání + validation: + title: Neplatný puzzle + noProducers: Prosím umístěte výrobník! + noGoalAcceptors: Prosím umístěte příjemce cílů! + goalAcceptorNoItem: Jeden nebo více příjemců cílů ještě nemají nastavený tvar. + Doručte jim tvar, abyste jej nastavili jako cíl. + goalAcceptorRateNotMet: Jeden nebo více příjemců cílů nedostávají dostatečný + počet tvarů. Ujistěte se, že indikátory jsou zelené pro všechny + příjemce. + buildingOutOfBounds: Jedna nebo více budov je mimo zastavitelnou oblast. Buď + zvětšete plochu, nebo je odstraňte. + autoComplete: Váš puzzle automaticky dokončuje sám sebe! Ujistěte se, že + vyrobníky nedodávají své tvary přímo do přijemců cílů. + difficulties: + easy: Lehká + medium: Střední + hard: Těžká + unknown: Unrated + dlcHint: Již jste toto DLC zakoupili? Ujistěte se, že je aktivováno kliknutím + pravého tlačítka na shapez.io ve své knihovně, vybráním Vlastnosti > + DLC. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Provádíte své akce příliš často. Počkejte prosím. + invalid-api-key: Komunikace s back-endem se nezdařila, prosím zkuste + aktualizovat/restartovat hru (Neplatný API klíč). + unauthorized: Komunikace s back-endem se nezdařila, prosím zkuste + aktualizovat/restartovat hru (Bez autorizace). + bad-token: Komunikace s back-endem se nezdařila, prosím zkuste + aktualizovat/restartovat hru (Špatný token). + bad-id: Neplatný identifikátor puzzlu. + not-found: Daný puzzle nebyl nalezen. + bad-category: Daná kategorie nebyla nalezena. + bad-short-key: Krátký klíč je neplatný. + profane-title: Název vašeho puzzlu obsahuje rouhavá slova. + bad-title-too-many-spaces: Název vašeho puzzlu je příliš krátký. + bad-shape-key-in-emitter: Výrobník má nastaven neplatný tvar. + bad-shape-key-in-goal: Příjemce cílů má nastaven neplatný tvar. + no-emitters: Váš puzzle neobsahuje žádné výrobníky. + no-goals: Váš puzzle neobsahuje žádné příjemce cílů. + short-key-already-taken: Tento krátký klíč je již používán, zadejte prosím jiný. + can-not-report-your-own-puzzle: Nemůžete nahlásit vlastní puzzle. + bad-payload: Žádost obsahuje neplatná data. + bad-building-placement: Váš puzzle obsahuje neplatně umístěné budovy. + timeout: Žádost vypršela. + too-many-likes-already: Tento puzzle již získal příliš mnoho lajků. Pokud jej + přesto chcete odstranit, kontaktujte nás prosím na support@shapez.io! + no-permission: K provedení této akce nemáte oprávnění. diff --git a/translations/base-da.yaml b/translations/base-da.yaml index 44293fdd..c1c33623 100644 --- a/translations/base-da.yaml +++ b/translations/base-da.yaml @@ -7,46 +7,19 @@ steamPage: Shapez.io er et afslappet spil hvor du skal bygge fabrikker for at automatisere productionen af geometriske figurer. - Jo længer du når, jo mere kompliseret bliver figurene, og du bliver nød til at spræde dig ud på den grænseløse spilleflade. + Jo længere du når, jo mere kompliceret bliver figurerne, og du bliver nød til at sprede dig ud på den grænseløse spilleflade. - og hvis det ikke var nok, så skal du også producere eksponentielt flere figurer for at møde behovene spillet giver dig - det eneste der virker er skalering! + Og, hvis det ikke var nok, så skal du også producere eksponentielt flere figurer for at møde behovene spillet giver dig - det eneste der virker er skalering! Mens du i starten kun laver former, skal du senere farvelægge dem - for at gøre dette skal du udvinde og blande farver! - Mens du i starten kun laver former, skal du senere farvelægge dem - for at gøre dette skal du udvinde og blande farver! - - At købe spllet på Steam, giver dig adgang til det fulde spil, men du kan også spille en demo version på shapez.io og vælge senere! - title_advantages: Steam version Fordele - advantages: - - <b>12 Nye Niveauer</b> for i alt 26 niveauer - - <b>18 Nye Bygninger</b> for en fuldt autmaticeret fabrik! - - <b>20 Upgraderings Niveauer</b> for mange timers sjov! - - <b>Ledninger Opdatering</b> for en helt ny dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Uendelige Markører - - Hjælp med at støtte mig! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... og meget mere! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Hjælp med oversættelse - text_open_source: >- - Hvem som helst kan bidrage, jeg er aktivt involveret i fælleskabet og - forsøger at gennemgå alle ideer og tager feedback i overvejelse - hvor muligt. - - Be sure to check out my trello board for the full roadmap! + Køb spillet på Steam, det giver dig adgang til det fulde spil, men du kan også spille en demo version på shapez.io og vælge senere! + what_others_say: Hvad andre siger om shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Indlæser error: Fejl @@ -78,6 +51,7 @@ global: escape: ESC shift: SKIFT/SHIFT space: MELLEMRUM + loggingIn: Logging in demoBanners: title: Demo Version intro: Køb spillet for at få den fulde oplevelse! @@ -85,7 +59,7 @@ mainMenu: play: Spil continue: Fortsæt newGame: Nyt Spil - changelog: Changelog + changelog: Ændringsliste subreddit: Reddit importSavegame: Importér openSourceHint: Dette spil er open source! @@ -96,7 +70,13 @@ mainMenu: browser! Køb spillet eller download chrome for den fulde oplevelse. savegameLevel: Niveau <x> savegameLevelUnknown: Ukendt Niveau - savegameUnnamed: Unnamed + savegameUnnamed: Uden Navn + puzzleMode: Puzzle Tilstand + back: Tilbage + puzzleDlcText: Synes du det er det sjovt at gøre maskinerne mindre og mere + optimal? Få fat i DLC på Steam nu for mere sjov! + puzzleDlcWishlist: Wishlist den nu! + puzzleDlcViewNow: Se DLC dialogs: buttons: ok: OK @@ -109,7 +89,10 @@ dialogs: deleteGame: Jeg ved hvad jeg laver viewUpdate: Se Opdatering showUpgrades: Vis Opgraderinger - showKeybindings: Vis Keybindings + showKeybindings: Vis tastefunktioner + retry: Genprøv + continue: Fortsæt + playOffline: Spil Offline importSavegameError: title: Import Fejl text: "Importering af gemt spil fejlede:" @@ -121,9 +104,8 @@ dialogs: text: "Det lykkedes ikke at åbne dit gemte spil:" confirmSavegameDelete: title: Bekræft sletning - text: Are you sure you want to delete the following game?<br><br> - '<savegameName>' at level <savegameLevel><br><br> This can not be - undone! + text: Er du sikker på du vil slette dette spil?<br><br> '<savegameName>' på + niveau <savegameLevel><br><br> Dette kan ikke fortrydes! savegameDeletionError: title: Sletning fejlede text: "Det lykkedes ikke at slette dit gemte spil:" @@ -134,12 +116,12 @@ dialogs: title: Ændr Keybinding desc: Tryk på knappen du vil bruge, eller escape for at fortryde. resetKeybindingsConfirmation: - title: Nulstil keybindings - desc: Dette vil nulstille alle keybindings til deres standarder. Bekræft + title: Nulstil tastefunktioner + desc: Dette vil nulstille alle tastefunktioner til deres standarder. Bekræft venligst. keybindingsResetOk: - title: Keybindings nulstillet - desc: Keybindings er nulstillet til deres standarder! + title: Tastefunktioner nulstillet + desc: Tastefunktioner er nulstillet til deres standarder! featureRestriction: title: Demoversion desc: Du prøvede at bruge en funktion (<feature>) der ikke er tilgængelig i @@ -152,11 +134,10 @@ dialogs: title: Ny opdatering! desc: "Dette har ændret sig siden sidst du spillede:" upgradesIntroduction: - title: Få Opgraderinger - desc: Alle figurer du producerer kan blive brugt til at få opgraderinger - + title: Få Forbedringer + desc: Alle figurer du producerer kan blive brugt til at få forbedringer - <strong>Ødelæg ikke dine gamle fabrikker!</strong> - Opgraderingeringsvinduet kan findes i det øverste højre hjørne af - skærmen. + Forbedringsvinduet kan findes i det øverste højre hjørne af skærmen. massDeleteConfirm: title: Bekræft sletning desc: Du er ved at slette mange bygninger (<count> helt præcist)! Er du sikker @@ -167,7 +148,7 @@ dialogs: på at det er det du vil gøre? blueprintsNotUnlocked: title: Ikke tilgængeligt endnu - desc: Gennemfør Niveau 12 for at bruge arbejdstegninger! + desc: Gennemfør Niveau 12 for at bruge skabeloner! keybindingsIntroduction: title: Brugbare keybindings desc: "Dette spil har mange keybindings, som gør det lettere at bygge store @@ -179,11 +160,12 @@ dialogs: transportbånd.<br>" createMarker: title: Ny Markør - desc: Give it a meaningful name, you can also include a <strong>short - key</strong> of a shape (Which you can generate <link>here</link>) titleEdit: Rediger Markør + desc: Giv det et meningsfyldt navn. Du kan også inkludere en <strong> kort + nøgle</strong> af en figur (som du kan lave <link>her</link>) markerDemoLimit: - desc: Du kan kun lave to markører i demoen. Køb spillet for uendelige markører! + desc: Du kan kun lave to markører i demoen. Køb spillet for uendeligt mange + markører! exportScreenshotWarning: title: Eksporter skærmbillede desc: Du bad om at eksportere din fabrik som et skærmbillede. Bemærk at dette @@ -195,26 +177,89 @@ dialogs: vil klippe det? editSignal: title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you - can generate <link>here</link>) + descItems: "Vælg en standard figur:" + descShortKey: ... eller indtast <strong>kort nøgle</strong> af en figur (som du + kan lave <link>her</link>) renameSavegame: - title: Rename Savegame - desc: You can rename your savegame here. + title: Omdøb gemt spil + desc: Du kan omdøbe dine gemte spil her. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Vejledning tilgængelig + desc: Der findes en vejldning som video for dette niveau, vil du se den? tutorialVideoAvailableForeignLanguage: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + editConstantProducer: + title: Set Figur + puzzleLoadFailed: + title: Puslerne kunne ikke indlæses + desc: "Desværre kunne puslerne ikke indlæses:" + submitPuzzle: + title: Indsend pusle + descName: Giv dit pusle et navn + descIcon: "Venligst angiv en kort nøgle, som bliver vist som ikon af dit pusle + (Du kan lave nøgler <link>her</link>, eller vælge en af de + tilfældige forneden):" + placeholderName: Pusle Overskift + puzzleResizeBadBuildings: + title: Kan ikke ændre størrelse + desc: Du kan ikke lave området mindre fordi så vil nogle bygninger falde udenfor + området. + puzzleLoadError: + title: Dårlig Pusle + desc: "Puslet kunne ikke indlæses:" + offlineMode: + title: Offline tilstand + desc: Vi kan ikke forbinde til serverne og spillet kører i offline tilstand. + Venligst kontroler at du har en fungerende internet forbindelse. + puzzleDownloadError: + title: Download Fejl + desc: "Kunne ikke hente puslet:" + puzzleSubmitError: + title: Indsendelse fejl + desc: "Kunne ikke indsende dit pusle:" + puzzleSubmitOk: + title: Pusle offentliggjort + desc: Tilykke! Dit Pusle er nu offentliggjort and kan spilles af andre. Du kan + nu finde det under 'Mine Pusler'. + puzzleCreateOffline: + title: Offline tilstand + desc: Da du er offline kan du ikke gemme eller offentliggøre dit pusle. Vil du + fortsætte alligevel? + puzzlePlayRegularRecommendation: + title: Anbefaling + desc: Det <strong>anbefales stærkt</strong> at spille mindst til niveau 12 før + du forsøger Pusle DLC'en da du vil møde spil mekanik som du ikke er + introduceret til endnu. Vil du alligevel fortsætte? + puzzleShare: + title: Kort Nøgle Kopieret + desc: Den korte nøgle af Pusle (<key>)er kopieret til din udklipsholder! Den kan + sættes ind i Pusle menuen som adgangspunkt + puzzleReport: + title: Anmeld Pusle + options: + profane: Ukvemsord + unsolvable: Kan ikke løses + trolling: Trolling + puzzleReportComplete: + title: Tak for din tilbagemeldning! + desc: Puslet er øremærket. + puzzleReportError: + title: Tilbagemeldning fejlede + desc: "Din tilbagemeldning kunne ikke behandles:" + puzzleLoadShortKey: + title: Indtast kort nøgle + desc: Indtast den korte nøgle af puslet for at indlæse det. + puzzleDelete: + title: Slet Pusle? + desc: Er du helt sikker på du vil slette '<title>'? Dette kan ikke fortrydes! ingame: keybindingsOverlay: moveMap: Bevæg dig selectBuildings: Marker område stopPlacement: Stop placering - rotateBuilding: Roter bygning + rotateBuilding: Drej bygning placeMultiple: Placer flere reverseOrientation: Omvend retning disableAutoOrientation: Slå automatisk retning fra @@ -222,14 +267,15 @@ ingame: placeBuilding: Placer bygning createMarker: Lav Markør delete: Slet - pasteLastBlueprint: Sæt sidste arbejdstegning ind - lockBeltDirection: Aktiver bælteplanlægger + pasteLastBlueprint: Sæt sidste skabelon ind + lockBeltDirection: Aktiver båndplanlægger plannerSwitchSide: Vend planlægsningsside cutSelection: Klip copySelection: Kopier clearSelection: Ryd Selektion pipette: Pipette switchLayers: Skift Lag + clearBelts: Ryd bånd colors: red: Rød green: Grøn @@ -238,7 +284,7 @@ ingame: purple: Lilla cyan: Cyan white: Hvid - uncolored: Ingen farve + uncolored: Farveløs black: Sort buildingPlacement: cycleBuildingVariants: Tryk <key> for at vælge type. @@ -247,37 +293,37 @@ ingame: speed: Fart range: Rækkevidde storage: Opbevaring - oneItemPerSecond: 1 genstand / sekund - itemsPerSecond: <x> genstande / s + oneItemPerSecond: 1 figur / sekund + itemsPerSecond: <x> figurer / s itemsPerSecondDouble: (x2) - tiles: <x> flader + tiles: <x> fliser levelCompleteNotification: levelTitle: Niveau <level> completed: Klaret unlockText: <reward> er nu tilgængelig! buttonNextLevel: Næste Niveau notifications: - newUpgrade: En ny opgradering er tilgængelig! + newUpgrade: En ny forbedring er tilgængelig! gameSaved: Dit spil er gemt. - freeplayLevelComplete: Level <level> er blevet fuldført! + freeplayLevelComplete: Niveau <level> er blevet fuldført! shop: title: Opgraderinger - buttonUnlock: Opgrader + buttonUnlock: Forbedre tier: Trin <x> - maximumLevel: HØJESTE NIVEAU (Speed x<currentMult>) + maximumLevel: HØJESTE NIVEAU (Fart x<currentMult>) statistics: title: Statistikker dataSources: stored: title: Opbevaret - description: Viser mængden af opbevarede figurer i din centrale bygning. + description: Viser mængden af opbevarede figurer i dit centrale NAV. produced: title: Produceret description: Viser alle de figurer hele din fabrik producerer, inklusiv produkter brugt til videre produktion. delivered: title: Afleveret - description: Viser figurer som er afleveret til din centrale bygning. + description: Viser figurer som bliver afleveret til din centrale NAV. noShapesProduced: Ingen figurer er blevet produceret indtil videre. shapesDisplayUnits: second: <shapes> / s @@ -286,7 +332,7 @@ ingame: settingsMenu: playtime: Spilletid buildingsPlaced: Bygninger - beltsPlaced: Bælter + beltsPlaced: Bånd tutorialHints: title: Har du brug for hjælp? showHint: Vis hint @@ -295,12 +341,12 @@ ingame: cost: Pris waypoints: waypoints: Markører - hub: HUB - description: Venstreklik en markør for at hoppe til den, højreklik for at slette - den.<br><br>Tryk <keybinding> for at lave en markør på det nuværende - sted, eller <strong>højreklik</strong> for at lave en markør på det - valgte sted. - creationSuccessNotification: Markør er sat. + hub: NAV + description: Venstreklik på Markøren for at hoppe til det, højreklik for at + slette den.<br><br>Tryk <keybinding> for at lave en Markør på det + nuværende sted, eller <strong>højreklik</strong> for at lave en + Markør på det valgte sted. + creationSuccessNotification: Markøren er sat. shapeViewer: title: Lag empty: Tom @@ -308,29 +354,30 @@ ingame: interactiveTutorial: title: Tutorial hints: - 1_1_extractor: Sæt en <strong>udvinder</strong> på toppen af - en<strong>cirkelfigur</strong> for at begynde produktion af den! - 1_2_conveyor: "Forbind udvinderen til din hub med et - <strong>transportbælte</strong>!<br><br>Tip: <strong>Tryk og - træk</strong> bæltet med din mus!" - 1_3_expand: "Dette er <strong>IKKE</strong> et idle game! Byg flere udvindere og - bælter for at færdiggøre målet hurtigere.<br><br>Tip: Hold - <strong>SKIFT</strong> for at sætte flere udvindere, og tryk - <strong>R</strong> for at rotere dem." - 2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two - halves!<br><br> PS: The cutter always cuts from <strong>top to - bottom</strong> regardless of its orientation." - 2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a - <strong>trash</strong> to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed - up this slow process!<br><br> PS: Use the <strong>0-9 - hotkeys</strong> to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4 - extractors</strong> and connect them to the hub.<br><br> PS: - Hold <strong>SHIFT</strong> while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some + 1_1_extractor: Sæt en <strong>udvinder</strong> på toppen af en + <strong>cirkelfigur</strong> for at begynde produktion af den! + 1_2_conveyor: "Forbind udvinderen til dit NAV med et + <strong>transportbånd</strong>!<br><br>Tip: <strong>Tryk og + træk</strong> båndet med din mus!" + 1_3_expand: "Dette er <strong>IKKE</strong> et tomgangs spil! Byg flere + udvindere og transportbånd for at færdiggøre målet + hurtigere.<br><br>Tip: Hold <strong>SKIFT</strong> for at sætte + flere udvindere, og tryk <strong>R</strong> for at rotere dem." + 2_1_place_cutter: "Placer en <strong>klipper</strong> for at klippe cirklen i to + halvdele!<br><br> Bemærk: Klippet er altid lodret fra + <strong>top til bund</strong> uanset klipperens placering." + 2_2_place_trash: Klipperen kan <strong>stoppe til</strong>!<br><br> Brug + <strong>skraldespanden</strong> for at smide de (for tiden) + uønskede rester væk. + 2_3_more_cutters: "Godt gjort! Sæt yderelige <strong>2 klippere</strong> for at + sætte fart på den langsome process!<br><br> Bemærk: Brug + <strong>0-9 tasterne</strong> for hurtigere indvælge + bygningerne!" + 3_1_rectangles: "Nu skal vi have fat i firkanter! <strong>Byg 4 + udvindere</strong> og forbind dem til dit NAV.<br><br> Bemærk: + Hold <strong>SKIFT</strong> mens du trækker bånd - det aktiverer + båndplanlæggeren!" + 21_1_place_quad_painter: Placer <strong>quad painter</strong> and get some <strong>circles</strong>, <strong>white</strong> and <strong>red</strong> color! 21_2_switch_to_wires: Switch to the wires layer by pressing @@ -359,9 +406,6 @@ ingame: buildings: title: 18 Nye Bygninger desc: Fully automate your factory! - savegames: - title: ∞ Gemte spil - desc: Så mange dit hjerte begær! upgrades: title: ∞ Upgrade Tiers desc: This demo version has only 5! @@ -377,9 +421,53 @@ ingame: support: title: Støt mig desc: Jeg arbejder på det i min fritid! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Pusle løst! + titleLike: "Klik på hjertet hvis du kunne lide puslet:" + titleRating: Hvor svært var pusket for dig? + titleRatingDesc: Din vurdering vil hjælpe mig i bedre anbefalinger i fremtiden + continueBtn: Fortsæt spillet + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Forfatter + shortKey: Kort nøgle + rating: Sværhedsgrad + averageDuration: Gnms. varighed + completionRate: Løsnings grad shopUpgrades: belt: - name: Bælter, Fordelere & Tuneller + name: Bånd, Fordelere & Tuneller description: Fart x<currentMult> → x<newMult> miner: name: Udvinding @@ -394,12 +482,12 @@ buildings: hub: deliver: Aflever toUnlock: for at få adgang til - levelShortcut: NIV - endOfDemo: End of Demo + levelShortcut: niveau + endOfDemo: Demo er slut belt: default: - name: Transportbælte - description: Transporterer figurer, hold og træk for at sætte flere. + name: Transportbånd + description: Transporterer figurer. Hold og træk for at placere flere. miner: default: name: Udvinder @@ -410,10 +498,10 @@ buildings: underground_belt: default: name: Tunnel - description: Laver tunneller under bygninger og bælter. + description: Laver tunneller under bygninger og bånd. tier2: name: Tunnel Trin II - description: Laver tunneller under bygninger og bælter. + description: Laver tunneller under bygninger og bånd. cutter: default: name: Klipper @@ -438,7 +526,7 @@ buildings: stacker: default: name: Stabler - description: Stabler begge figurer. Hvis de ikke kan sammensmeltes, så sættes + description: Samler begge figurer. Hvis de ikke kan sammensmeltes, så stables den højre figur oven på den venstre. mixer: default: @@ -455,22 +543,25 @@ buildings: name: Maler (Dobbelt) description: Farver figurerne fra venstre side med farven fra toppen. quad: - name: Maler (Quad) - description: Allows you to color each quadrant of the shape individually. Only - slots with a <strong>truthy signal</strong> on the wires layer - will be painted! + name: Maler (Firdobblet) + description: Farver særskilt hver firkant af figuren. Kun indgange med et + <strong>Sandt signal</strong> på signal laget bliver farvelagt! trash: default: name: Skraldespand description: Tillader input fra alle sider og ødelægger dem. For evigt. wire: default: - name: Energiledning - description: Lader dig transportere energi. + name: Ledning + description: Overfører signaler, som kan være figurer, farver eller Sand/Falsk + (1/0). Forskelligt farvede ledinger kan ikke forbindes. second: name: Ledning - description: Overfør signaler, som kan være elementer, farver eller boolsk variabler (1 / 0). - Forskellig farvet ledninger kan ikke forbindes. + description: wire_description_missing + wire_tunnel: + default: + name: Lednings overgang + description: Muliggør to ledninger krydser uden at forbinde til hinanden. balancer: default: name: Balancer @@ -489,23 +580,19 @@ buildings: description: Splitter et transportbånd til to. storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. - wire_tunnel: - default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: Opbevaringsbuffer + description: Opbevarer overskudende figurer, op til dens kapacitet. Den venstre + udgang bruges fortinsvis. Kan bruges til overskuds regulering. constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: Konstant Signal + description: Sender et konstant signal, som kan være en figure, farve eller + Sand/Falsk (1/0). lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: Kontakt + description: Sender et Sand/Falsk signal (1 / 0) i ledningslaget, som kan bruges + til at kontrolere en bygning, f.eks. en Maler. logic_gate: default: name: AND Gate @@ -513,16 +600,16 @@ buildings: color or boolean "1") not: name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + description: Sender "1", hvis indgangen er Falsk. ("Falsk" her er "0", ingen + Figur eller Farve) xor: name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + description: Sender "1", hvis en, men ikke begge, indgange er Sand. ("Sand" her + er "1", en Figur eller Farve) or: name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + description: Sender "1", hvis mindst en indgang er Sand. ("Sand" her er "1", en + Figur eller Farve) transistor: default: name: Transistor @@ -530,14 +617,13 @@ buildings: color or "1"). mirrored: name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + description: Fremsender den nedre indgang, hvis side indgangen er Sand. ("Sand" + her er "1", en Figur eller Farve). filter: default: name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + description: Forbind med et Signal for at matchende elementer føres til toppen + og resten til højre Signalet kan også være Sand/Falsk. display: default: name: Display @@ -581,30 +667,42 @@ buildings: name: Item Producer description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Klippe Figurer - desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half - from top to bottom <strong>regardless of its - orientation</strong>!<br><br>Be sure to get rid of the waste, or - otherwise <strong>it will clog and stall</strong> - For this purpose - I have given you the <strong>trash</strong>, which destroys - everything you put into it! + desc: Du har lige fået tilgang til <strong>Klipper</strong>, som skærer figurene + over i midten, fra top til bund, <strong>uanset hvordan klipperen + ligger</strong>! <br><br>Husk at fjerne uønskede rester fra den + anden side, ellers vil den <strong>tilstoppe og gå i stå</strong> - + Derfor har du nu også fået <strong>skraldespanden</strong>, som + fjerner alt der kommer i den. reward_rotater: - title: Rotation + title: Drejning desc: <strong>Drejeren</strong> er nu tilgængelig! Den drejer figurer 90 grader med uret. reward_painter: title: Maling - desc: "<strong>Maleren</strong> er nu tilgængelig - Få noget farve med - udvinderen (som du også gør med figurer) og kombiner det med en - farve i maleren for at farve dem!<br><br>PS: Hvis du er farveblind, - så er der en <strong>farveblindstilstand</strong> i + desc: "<strong>Maleren</strong> er nu tilgængelig - Få noget Farve med + udvinderen (lige som du gør med figurer) og kombiner det med en + farve i maleren for at farvelægge dem!<br><br>Bemærk: Hvis du er + farveblind, så er der en <strong>farveblindstilstand</strong> i indstillingerne!" reward_mixer: title: Farveblanding - desc: The <strong>mixer</strong> has been unlocked - It mixes two colors using - <strong>additive blending</strong>! + desc: <strong>Farveblanderen</strong> er nu tilgængeg - Den blander to Farver på + en <strong>additiv</strong> måde! reward_stacker: title: Stabler desc: Du kan du stable figurer med <strong>stableren</strong>! Begge inputs @@ -619,7 +717,7 @@ storyRewards: reward_tunnel: title: Tunnel desc: <strong>Tunnellen</strong> er nu tilgængelig - Du kan nu lave tuneller - under bælter og bygninger! + under bånd og bygninger! reward_rotater_ccw: title: Rotation mod uret desc: Du har fået adgang til en variant af <strong>drejeren</strong> - Den lader @@ -627,10 +725,10 @@ storyRewards: <strong>trykke 'T'</strong>! reward_miner_chainable: title: Kædeudvinder - desc: "You have unlocked the <strong>chained extractor</strong>! It can - <strong>forward its resources</strong> to other extractors so you - can more efficiently extract resources!<br><br> PS: The old - extractor has been replaced in your toolbar now!" + desc: "Du har nu adgang til <strong>kædeudvinderen</strong>! Den + <strong>videregiver sin produktion</strong> til tilstødende + udvindere så du nemmere kan udvinde alt!<br><br> Bemærk: Den gamle + udvinder er blevet erstattet af den i din værktøjsbjælke!" reward_underground_belt_tier_2: title: Tunnel Trin II desc: Du har fået adgang til en variant af <strong>tunnellen</strong> - Den har @@ -648,53 +746,53 @@ storyRewards: og bruger kun en farve i stedet for to. reward_storage: title: Opbevaringsbuffer - desc: You have unlocked the <strong>storage</strong> building - It allows you to - store items up to a given capacity!<br><br> It priorities the left - output, so you can also use it as an <strong>overflow gate</strong>! + desc: <strong>Opbevaringsbuffer</strong> er nu tilgænglig - Den kan opbevare + figurer op til dens kapacitet!<br><br> Den venstre udgang bruges + fortinsvis. Kan bruges til <strong>overskuds regulering</strong>.! reward_freeplay: title: Frit spil - desc: You did it! You unlocked the <strong>free-play mode</strong>! This means - that shapes are now <strong>randomly</strong> generated!<br><br> - Since the hub will require a <strong>throughput</strong> from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!<br><br> The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + desc: Du gjorde det! Du har nu mulighed for <strong>Frit Spil Tilstand</strong>! + Det betyder at figuren er lavet <strong>tilfældigt</strong>!<br><br> + Da Navet kræver en stor <strong>gennemstrømning</strong> fra nu ad, + anbefaler jeg at du bygger en maskine som automatisk laver den + krævede figur!<br><br> Navet sender den ønskede figur på + Ledningslaget, så du skal "bare" analysere den og dermed styre din + maskine at levere det følgende reward_blueprints: - title: Arbejdstegninger + title: Skabeloner desc: Du kan nu <strong>kopiere og indsætte</strong> dele af din fabrik! Vælg et område (Hold CTRL, og træk med musen), og tryk 'C' for at kopiere det.<br><br>At sætte det ind er <strong>ikke gratis</strong>. Du - skal producere <strong>arbejdstegning figurer</strong> for at have - råd til det! (Dem du lige har leveret). + skal producere <strong>skabelon-figurer</strong> for at have råd til + det! (Dem du lige har leveret). no_reward: title: Næste niveau desc: "Dette niveau gav dig ingen belønninger, men det vil det næste! <br><br> - PS: Du må hellere lade være med at ødelægge din fabrik - Du får brug - for <strong>alle</strong> de figurer senere igen for at <strong>få - opgraderinger</strong>!" + Bemærk: Du må hellere lade være med at ødelægge din fabrik - Du får + brug for <strong>alle</strong> de figurer senere igen for at + <strong>få opgraderinger</strong>!" no_reward_freeplay: title: Næste niveau - desc: Tillykke! Forresten er mere indhold planlagt for den betalte version! + desc: Tillykke! reward_balancer: title: Balancer - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + desc: Denne multifunktionelle <strong>Balancer</strong> er nu tilgænglig - Du + kan bygge større fabrikker fordi den kan både <strong> fordele og + samle</strong> figurer mellem flere transportbånd! reward_merger: - title: Compact Merger - desc: You have unlocked a <strong>merger</strong> variant of the - <strong>balancer</strong> - It accepts two inputs and merges them - into one belt! + title: Samler(kompakt) + desc: Du har nu fået tilgang til <strong>kompakt samler</strong> variationen af + <strong>Balancer</strong>. Den tager figurene fra to bånd og samler + på et! reward_belt_reader: - title: Belt reader - desc: You have now unlocked the <strong>belt reader</strong>! It allows you to - measure the throughput of a belt.<br><br>And wait until you unlock - wires - then it gets really useful! + title: Båndlæser + desc: Du har nu åbnet op for <strong>Båndlæseren</strong>. Den måler + gennemstrømning på et bånd. <br><br>Bare vent til du har Ledninger - + så bliver den meget nyttig! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: Du har nu åbnet op for <strong>Drejeren med 180°</strong>! - Nu kan du + dreje dine figurer med 180 grader (Overraskelse! :D) reward_display: title: Display desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the @@ -726,13 +824,13 @@ storyRewards: regulary.<br><br> Whatever you choose, remember to have fun! reward_wires_painter_and_levers: title: Wires & Quad Painter - desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate + desc: 'You just unlocked the <strong>Wires Layer</strong>: It is a separate layer on top of the regular layer and introduces a lot of new mechanics!<br><br> For the beginning I unlocked you the <strong>Quad Painter</strong> - Connect the slots you would like to paint with on the wires layer!<br><br> To switch to the wires layer, press <strong>E</strong>. <br><br> PS: <strong>Enable hints</strong> in - the settings to activate the wires tutorial!" + the settings to activate the wires tutorial!"' reward_filter: title: Item Filter desc: You unlocked the <strong>Item Filter</strong>! It will route items either @@ -741,7 +839,7 @@ storyRewards: boolean signal (1 / 0) to entirely activate or disable it. reward_demo_end: title: End of Demo - desc: You have reached the end of the demo version! + desc: Det her er slutningen af Demo versionen! settings: title: Indstillinger categories: @@ -840,7 +938,7 @@ settings: enableTunnelSmartplace: title: Smarte Tunneller description: Aktiver for at placering af tunneller automatisk fjerner unødige - bælter. Dette gør igså at du kan trække tunneller så + båndfliser. Dette gør også at du kan trække tunneller så overskydende tunneller fjernes. vignette: title: Vignette @@ -854,67 +952,70 @@ settings: compactBuildingInfo: title: Kompakt Bygningsinfo description: Forkorter infobokse til bygninger ved kun at vise deres forhold. - Ellers er en beskrivelse og et billede også vist. + Ellers vises også en beskrivelse og et billede. disableCutDeleteWarnings: title: Slå klip/slet advarsler fra description: Slå advarselsboksene, der dukker op når mere end 100 ting slettes, fra. soundVolume: - title: Sound Volume - description: Set the volume for sound effects + title: Lydstyrke + description: Lydstyrken af lydeffekter musicVolume: - title: Music Volume - description: Set the volume for music + title: Musikstyrke + description: Lydstyrken af musiken. lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: Lav kvalitets kort ressource + description: Forenkler fremtoningen af figurer på kortet når zommet tæt for at + øge spillets ydelse. Det ser også renere ud, så prøv det! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: Slå net fra + description: Slå flise stregerne fra kan øge spillets ydelse. Det gør + fremtoningen renere! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: Ryd Cursor med højre klik + description: Normalt slået til. Rydder cursorens indhold hvis du har en bygning + parat til placering. Hvis slået fra, så sletter den bygning med + højreclick også hvis noget er i cursoren. lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: Lav kvalitets texturer (Gremt) + description: Bruger lav kvalitet for at forbedre spillets ydelse. Det får + spillet at se gremt ud! displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: Vis klynge grænser + description: Spillet er inddelt i klynger á 16x16 fliser. Dette viser grænsen af + hver klynge. pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: Væg Udvinder på resursefelt + description: Normalt slået til. Hvis du bruger pipette mens du er på en + resurseområde, vælges en Udvinder. simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: Forenklede bånd (Gremt) + description: Skjuler enheder på bånd, med mindre du holder musen over dem, for + at øge spillets ydelse. Jeg anbefaler at ikke bruge dette, med + mindre din maskines ydelse kræver det. enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: Tilvælg mus panorering + description: Muliggør at flytte kortet ved føre musen til skærmens kanter. + Hastigheden afhænger af anden indstilling. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Zoom mod cursor + description: Hvis slået til så vil en zoom være mod musens placering, ellers er + det mod skærmens midt. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Kort ressourcer størrelse + description: Styrer størrelsen af figurer på oversigtskortet (når man zoomer + ud). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: - title: Keybindings + title: Tastaturfunktioner hint: "Tip: Husk at bruge CTRL, SKIFT og ALT! De byder på forskellige placeringsmuligheder." - resetKeybindings: Nulstil Keybindings + resetKeybindings: Nulstil tastaturfunktioner categoryLabels: general: Applikation ingame: Spil @@ -941,7 +1042,7 @@ keybindings: toggleFPSInfo: Slå FPS og Debug Info til/fra switchLayers: Skift lag exportScreenshot: Eksporter hele basen som et billede - belt: Transportbælte + belt: Transportbånd underground_belt: Tunnel miner: Udvinder cutter: Klipper @@ -955,9 +1056,9 @@ keybindings: rotateInverseModifier: "Modifier: Roter mod uret i stedet" cycleBuildingVariants: Gennemgå Varianter confirmMassDelete: Slet område - pasteLastBlueprint: Sæt sidste arbejdstegning ind + pasteLastBlueprint: Sæt sidste skabelon ind cycleBuildings: Gennemgå bygninger - lockBeltDirection: Slå bælteplanlægger til + lockBeltDirection: Slå båndplanlægger til switchDirectionLockSide: "Planner: Skift side" massSelectStart: Hold og træk for at starte massSelectSelectMultiple: Vælg flere områder @@ -965,11 +1066,11 @@ keybindings: massSelectCut: Klip område placementDisableAutoOrientation: Slå automatisk rotation fra placeMultiple: Bliv i placeringstilstand - placeInverse: Spejlvend automatisk bælteorientering + placeInverse: Spejlvend automatisk båndorientering menuClose: Luk Menu wire: Energiledning balancer: Balancer - storage: Storage + storage: Opbevaring constant_signal: Constant Signal logic_gate: Logic Gate lever: Switch (regular) @@ -983,6 +1084,15 @@ keybindings: comparator: Compare item_producer: Item Producer (Sandbox) copyWireValue: "Wires: Copy value below cursor" + rotateToUp: "Drejning: Peg Op" + rotateToDown: "Drejning: Peg Ned" + rotateToRight: "Drejning: Peg Højre" + rotateToLeft: "Drejning: Peg Venster" + constant_producer: Konstant udgiver + goal_acceptor: Mål kontrollant + block: Blok + massSelectClear: Ryd bånd + showShapeTooltip: Show shape output tooltip about: title: Om dette spil body: >- @@ -990,10 +1100,9 @@ about: href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (det er mig).<br><br> - Hvis du vil kontribuere, tjek <a href="<githublink>" target="_blank">shapez.io på github</a>.<br><br> + Hvis du vil bidrage, tjek <a href="<githublink>" target="_blank">shapez.io på github</a>.<br><br> - Dette spil ville ikke have været muligt uden det fremragende Discord-fælleskab omkring mine spil - Du burde virkelig deltage på - <a href="<discordlink>" target="_blank">Discordserveren</a>!<br><br> + Dette spil ville ikke have været muligt uden det fremragende Discord-fælleskab omkring mine spil - Du burde virkelig deltage på <a href="<discordlink>" target="_blank">Discordserveren</a>!<br><br> Lydsporet er lavet af <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Han er fantastisk.<br><br> @@ -1002,58 +1111,59 @@ changelog: title: Changelog demo: features: - restoringGames: Genopretter gem - importingGames: Importerer gem + restoringGames: Genopretter gemte spil + importingGames: Importerer gemte spil oneGameLimit: Afgrænset til et gem - customizeKeybindings: Tilpasser Keybindings + customizeKeybindings: Tilpasse Tastaturfunktioner exportingBase: Eksportere hele basen som et billede settingNotAvailable: Ikke tilgængelig i demoen. tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing <b>R</b>. - - Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use <b>T</b> to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with <b>T</b> - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding <b>SHIFT</b> will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding <b>CTRL</b> allows to place multiple buildings. - - You can hold <b>ALT</b> to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. + - Det central NAV modtager alle figurer, ikke kun den aktuelle figur! + - Anstreng dig at fabrikker er modulære - det betaler sig! + - Undgå at bygge for tæt på navet - det bliver hurtigt rodet! + - Hvis stablingen ikke virker, så prøv at bytte de to indgange. + - Du kan vende båndplanlæggerens retning ved at trykke <b>R</b>. + - At holde <b>CTRL</b> muliggør trækning af bånd uden auto retningsændring. + - Forhold forbiver uændred hvis alle foredringer er nået samme niveau. + - Serial udførelse er mere effektive end parallel. + - Der vil låses op for endnu flere varianter af bygninger senere i spillet! + - Du kan bruge <b>T</b> for at skifte mellem varianter af en bygning. + - Symmetri er nøglen! + - Du kan væve mellem de forskellige tuneller. + - Prøv at lave dine fabrikker kompakte - det lønner sig i længden! + - Male værktøjet har en spejlversion - skift mellem dem med <b>T</b> + - Maksimum affektivitet opnås produktions forhold er afstemt. + - Ved højeste niveau vil 5 udvindere lige fylde et transportbånd. + - Glem ikke tuneller! + - Der er ikke behov for en lige fordeling for maksimum effektivitet. + - Hvis <b>SHIFT</b> holdes nede, aktiveres båndplanlæggeren, som gør det + meget nemmere at placere lange bånd. + - Klipperen skærer altid lodret, uanset placering. + - For at lave hvis skal alle tre farver blandes sammen. + - Opbevaringsbufferen fortrækker venstre udgang. + - Invester lidt tid i genbrugbare designs - det lønner sig! + - Ved at holde <b>CTRL</b> kan du placere placere flere bygninger. + - Med <b>ALT</b> holdt nede, vendes retning af båndet ved placering. + - Effektivitet er nøglen! + - Figure-felterne bliver mere komplex længere væk fra Centralen. + - Maskinerne har begrænset fart - del arbejdet op for effektivitet. + - Brug Fordeleren for at øge effektiviteten. + - Organisation er vigtig. Undgå for mange bånd der krydser hinanden. + - Plan i forvejen, eller det bliver en gang rod! + - undlad at slette dine gamle maskiner! Du behover dem for figurer til + Forbedringer. + - Prøv at komme til niveau 20 inden du søger om hjælp! + - Undgå at gøre det kompliceret - enkelhed kan komme langt. + - Det kan være at at du skal genbruge en maskine senere. Lav maskinerne så + de er nemme at genbruge. + - Nogle gange kan du finde en ønsket figur på kortet, uden at behove lave + den med stackere. + - En fuld vindmølle-figur findes ikke på kortet. + - Fervelæg figurere inden du skærer dem op for bedre effektivitet. - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use <b>CTRL</b> + Click to select an area. + - Lav en seperat maskine for skabelon-figuren. De er vigtige for moduler. + - Kig tæt på Farveblander ikonet. Det svarer på farve spørgsmål. + - Husk <b>CTRL</b> + museklick for at indvælge et område. - Building too close to the hub can get in the way of later projects. - The pin icon next to each shape in the upgrade list pins it to the screen. - Mix all primary colors together to make white! @@ -1069,3 +1179,88 @@ tips: - Press F4 to show your FPS and Tick Rate. - Press F4 twice to show the tile of your mouse and camera. - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-de.yaml b/translations/base-de.yaml index 26e9dfc2..04b15137 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -5,46 +5,27 @@ steamPage: intro: >- Du magst Automatisierungsspiele? Dann bist du hier genau richtig! - shapez.io ist ein entspanntes Spiel, in dem du Fabriken zur automatisierten Produktion von geometrischen Formen bauen musst. + Shapez.io ist ein entspanntes Spiel, in dem du Fabriken zur automatisierten Produktion von geometrischen Formen bauen musst. - Mit steigendem Level werden die Formen immer komplexer, und du musst dich auf der unendlich großen Karte ausbreiten. Das ist noch nicht alles, denn du musst exponentiell mehr produzieren, - um die Anforderungen zu erfüllen - Da hilft nur skalieren! + Mit steigendem Level werden die Formen immer komplexer und du musst dich auf der unendlich großen Karte ausbreiten. - Während du am Anfang nur Formen verarbeitest, musst du diese später auch einfärben - Dafür musst du Farben extrahieren und mischen! Der Kauf des Spiels auf Steam gibt dir Zugriff auf die - Vollversion, aber du kannst auch zuerst die Demo auf shapez.io spielen und dich später entscheiden! - title_advantages: Vorteile der Vollversion - advantages: - - <b>12 Neue Level</b> für insgesamt 26 Level - - <b>18 Neue Gebäude</b> für eine komplett automatisierte Fabrik! - - <b>20 Upgrade-Stufen</b> für viele Stunden Spielspaß - - <b>Wires-Update</b> für eine komplett neue Dimension! - - <b>Dark-Mode</b>! - - Unbegrenzte Speicherstände - - Unbegrenzte Wegpunkte - - Unterstütze mich! ❤️ - title_future: Geplante Inhalte - planned: - - Blaupausen-Bibliothek - - Errungenschaften auf Steam - - Puzzel-Modus - - Minimap - - Modunterstützung - - Sandkastenmodus - - ... und noch viel mehr! - title_open_source: Dieses Spiel ist quelloffen! - text_open_source: Jeder kann etwas zum Spiel beitragen! Ich engagiere mich aktiv - in der Community und versuche alle Vorschläge zu berücksichtigen. Die - vollständige Roadmap findet ihr auf meinem Trello-Board! - title_links: Links - links: - discord: Offizieller Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Quellcode (GitHub) - translate: Hilf beim Übersetzen + Das ist noch nicht alles, denn du musst exponentiell mehr produzieren, um die Anforderungen zu erfüllen - Da hilft nur skalieren! + + Während du am Anfang nur Formen verarbeitest, müssen diese später auch eingefärbt werden. Dafür musst du Farben extrahieren und mischen! + + Der Kauf des Spiels auf Steam gibt dir Zugriff auf die Vollversion, aber du kannst auch zuerst die Demo auf shapez.io spielen und dich später entscheiden! + what_others_say: Was andere über shapez.io sagen + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Laden error: Fehler + loggingIn: Einloggen thousandsDivider: . decimalSeparator: "," suffix: @@ -74,7 +55,7 @@ global: shift: UMSCH space: LEER demoBanners: - title: Demo-Version + title: Demoversion intro: Kauf die Vollversion für alle Features! mainMenu: play: Spielen @@ -89,10 +70,78 @@ mainMenu: madeBy: Ein Spiel von <author-link> browserWarning: Sorry, aber das Spiel wird in deinem Browser langsamer laufen! Kaufe die Vollversion oder verwende Google Chrome für die beste - Erfahrung! + Erfahrung. savegameLevel: Level <x> savegameLevelUnknown: Unbekanntes Level savegameUnnamed: Unbenannt + puzzleMode: Puzzlemodus + back: Zurück + puzzleDlcText: Du hast Spaß daran, deine Fabriken zu optimieren und effizienter + zu machen? Hol dir das Puzzle-DLC auf Steam für noch mehr Spaß! + puzzleDlcWishlist: Jetzt zur Wunschliste hinzufügen! + puzzleDlcViewNow: DLC anzeigen +puzzleMenu: + play: Spielen + edit: Bearbeiten + title: Puzzlemodus + createPuzzle: Puzzle erstellen + loadPuzzle: Laden + reviewPuzzle: Überprüfen & Veröffentlichen + validatingPuzzle: Puzzle wird überprüft + submittingPuzzle: Puzzle wird veröffentlicht + noPuzzles: Hier gibt es bisher noch keine Puzzles. + dlcHint: > + DLC schon gekauft? Stelle sicher, dass es aktiviert ist, indem du in der + Steam-Bibliothek shapez.io rechtsklickst und es unter Eigenschaften > + Zusatzinhalte (DLC) aktivierst. + categories: + levels: Levels + new: Neu + top-rated: Am besten bewertet + mine: Meine Puzzles + easy: Einfach + medium: Mittel + hard: Schwierig + completed: Abgeschlossen + official: Vorgestellt + trending: Heute beliebt + trending-weekly: Diese Woche beliebt + categories: Kategorien + difficulties: Nach Schwierigkeit + account: Meine Puzzles + search: Suche + difficulties: + easy: Einfach + medium: Mittel + hard: Schwer + unknown: Unbewertet + validation: + title: Ungültiges Puzzle + noProducers: Bitte platziere einen Itemproduzent! + noGoalAcceptors: Bitte platziere einen Zielakzeptor! + goalAcceptorNoItem: Ein oder mehrere Zielakzeptoren haben noch kein zugewiesenes + Item. Beliefere sie mit einer Form, um ein Ziel zu setzen. + goalAcceptorRateNotMet: Ein oder mehrere Zielakzeptoren bekommen nicht genügend + Items. Stelle sicher, dass alle ihre Indikatoren grün leuchten. + buildingOutOfBounds: Ein oder mehrere Gebäude befinden sich außerhalb des + bebaubaren Bereichs. Vergrößere den Bereich oder entferne die + Gebäude. + autoComplete: Dein Puzzle schließt sich selbst ab! Bitte stelle sicher, dass + deine Itemproduzenten nicht direkt an deine Zielakzeptoren liefern. + search: + action: Suchen + placeholder: Gib einen Puzzle- oder Autorennamen ein + includeCompleted: Gelöst einbeziehen + difficulties: + any: Beliebige Schwierigkeit + easy: Einfach + medium: Mittel + hard: Schwierig + durations: + any: Beliebige Dauer + short: Kurz (< 2 Min) + medium: Normal + long: Lang (> 10 Min) dialogs: buttons: ok: OK @@ -105,7 +154,10 @@ dialogs: deleteGame: Ich weiß, was ich tue viewUpdate: Update anzeigen showUpgrades: Upgrades anzeigen - showKeybindings: Kürzel anzeigen + showKeybindings: Hotkeys anzeigen + retry: Erneut versuchen + continue: Fortsetzen + playOffline: Offline spielen importSavegameError: title: Importfehler text: "Fehler beim Importieren deines Speicherstands:" @@ -137,9 +189,9 @@ dialogs: title: Tastenbelegung zurückgesetzt desc: Die Tastenbelegung wurde auf den Standard zurückgesetzt! featureRestriction: - title: Demo-Version + title: Demoversion desc: Du hast ein Feature benutzt (<feature>), welches nicht in der Demo - enthalten ist. Erwerbe die Vollversion für das volle Erlebnis! + enthalten ist. Erwerbe die Vollversion für das ganze Erlebnis! oneSavegameLimit: title: Begrenzte Speicherstände desc: Du kannst in der Demo nur einen Speicherstand haben. Bitte lösche den @@ -149,9 +201,10 @@ dialogs: desc: "Hier sind die Änderungen, seitdem du das letzte Mal gespielt hast:" upgradesIntroduction: title: Upgrades freischalten - desc: Viele deiner Formen können noch benutzt werden, um Upgrades freizuschalten - - <strong>Zerstöre deine alten Fabriken nicht!</strong> Den - Upgrade-Tab findest du oben rechts im Bildschirm. + desc: Viele deiner Formen können noch benutzt werden, um Upgrades + freizuschalten, also <strong>zerstöre deine alten Fabriken + nicht!</strong> Den Upgrade-Tab findest du oben rechts im + Bildschirm. massDeleteConfirm: title: Löschen bestätigen desc: Du löscht viele Gebäude (<count> um genau zu sein)! Bist du dir sicher? @@ -171,25 +224,27 @@ dialogs: desc: >- Dieses Spiel hat viele Hotkeys, die den Bau von Fabriken vereinfachen und beschleunigen. Hier sind ein paar Beispiele, aber - prüfe am besten die - <strong>Tastenbelegung-Einstellungen</strong>!<br><br> + prüfe am besten die <strong>Tastenbelegung</strong> in den + Einstellungen!<br><br> <code class='keybinding'>STRG</code> + Ziehen: Wähle Bereich aus.<br> <code class='keybinding'>UMSCH</code>: Halten, um mehrere Gebäude zu platzieren.<br> <code class='keybinding'>ALT</code>: Invertiere die Platzierungsrichtung der Fließbänder.<br> createMarker: - title: Neuer Marker - titleEdit: Marker bearbeiten + title: Neue Markierung + titleEdit: Markierung bearbeiten desc: Gib ihm einen griffigen Namen. Du kannst auch den - <strong>Kurz-Code</strong> einer Form eingeben (Welchen du - <link>hier</link> generieren kannst). + <strong>Kurzschlüssel</strong> einer Form eingeben + (<link>Hier</link> geht es zum Generator). editSignal: title: Signal setzen descItems: "Wähle ein vordefiniertes Item:" - descShortKey: ... oder gib den <strong>Kurz-Code</strong> einer Form an (Welchen - du <link>hier</link> generieren kannst). + descShortKey: ... oder gib den <strong>Kurzschlüssel</strong> einer Form an + (<link>Hier</link> geht es zum Generator). + editConstantProducer: + title: Item wählen markerDemoLimit: - desc: Du kannst nur 2 Marker in der Demo benutzen. Hole dir die Vollversion, um - unendlich viele Marker zu erstellen! + desc: Du kannst nur 2 Markierungen in der Demo benutzen. Hole dir die + Vollversion, um unbegrenzt viele Markierungen zu setzen! exportScreenshotWarning: title: Bildschirmfoto exportieren desc: Hier kannst du ein Bildschirmfoto von deiner ganzen Fabrik erstellen. Für @@ -200,15 +255,81 @@ dialogs: desc: Hier kannst du deinen Speicherstand umbenennen. tutorialVideoAvailable: title: Tutorial verfügbar - desc: Für dieses Level ist ein Tutorial-Video verfügbar. Willst du es anschauen? + desc: Für dieses Level ist ein Anleitungsvideo verfügbar. Willst du es + anschauen? tutorialVideoAvailableForeignLanguage: title: Tutorial verfügbar - desc: Für dieses Level ist ein Tutorial-Video verfügbar, allerdings nur auf + desc: Für dieses Level ist ein Anleitungsvideo verfügbar, allerdings nur auf Englisch. Willst du es trotzdem anschauen? + puzzleLoadFailed: + title: Puzzles konnten nicht geladen werden + desc: "Leider konnten die Puzzles nicht geladen werden:" + submitPuzzle: + title: Puzzle veröffentlichen + descName: "Gib deinem Puzzle einen Namen:" + descIcon: "Bitte gib einen eindeutigen Kurzschlüssel ein, der als Symbol für + dein Puzzle genutzt wird (<link>Hier</link> geht es zum Generator + oder wähle unten einen der zufälligen Vorschläge):" + placeholderName: Puzzlename + puzzleResizeBadBuildings: + title: Größenänderung nicht möglich + desc: Du kannst die Zone nicht weiter verkleinern, da ansonsten einige Gebäude + außerhalb der erlaubten Zone liegen würden. + puzzleLoadError: + title: Fehlerhaftes Puzzle + desc: "Das Puzzle konnte nicht geladen werden:" + offlineMode: + title: Offlinemodus + desc: Die Server konnten nicht erreicht werden, daher läuft das Spiel im + Offlinemodus. Bitte stelle sicher, dass du eine aktive + Internetverbindung hast. + puzzleDownloadError: + title: Downloadfehler + desc: "Der Download des Puzzles ist fehlgeschlagen:" + puzzleSubmitError: + title: Übermittlungsfehler + desc: "Das Puzzle konnte nicht eingereicht werden:" + puzzleSubmitOk: + title: Puzzle veröffentlicht + desc: Herzlichen Glückwunsch! Dein Puzzle wurde veröffentlicht und kann nun von + anderen gespielt werden. Du kannst es jetzt im Bereich "Meine + Puzzles" finden. + puzzleCreateOffline: + title: Offlinemodus + desc: Da du offline bist, kannst du dein Puzzle nicht speichern und/oder + veröffentlichen. Möchtest du trotzdem fortfahren? + puzzlePlayRegularRecommendation: + title: Empfehlung + desc: Ich empfehle dir <strong>sehr</strong>, bis Level 12 zu spielen, bevor du + dich an das Puzzle-DLC wagst. Du stößt sonst möglicherweise auf dir + noch nicht bekannte Mechaniken. Möchtest du trotzdem fortfahren? + puzzleShare: + title: Kurzschlüssel kopiert + desc: Der Kurzschlüssel des Puzzles (<key>) wurde in die Zwischenablage kopiert! + Dieser kann im Puzzlemenü genutzt werden, um das Puzzle zu laden. + puzzleReport: + title: Puzzle melden + options: + profane: Missbrauch + unsolvable: Nicht lösbar + trolling: Trolling + puzzleReportComplete: + title: Danke für dein Feedback! + desc: Das Puzzle wurde vermerkt. + puzzleReportError: + title: Melden fehlgeschlagen + desc: "Deine Meldung konnte nicht verarbeitet werden:" + puzzleLoadShortKey: + title: Kurzschlüssel eingeben + desc: Trage einen Kurzschlüssel ein, um das Puzzle zu laden. + puzzleDelete: + title: Puzzle löschen? + desc: Bist du sicher, dass du '<title>' löschen möchtest? Dies kann nicht + rückgängig gemacht werden! ingame: keybindingsOverlay: moveMap: Bewegen - selectBuildings: Areal markieren + selectBuildings: Bereich markieren stopPlacement: Platzierung stoppen rotateBuilding: Gebäude rotieren placeMultiple: Mehrere platzieren @@ -216,13 +337,14 @@ ingame: disableAutoOrientation: Auto-Orientierung deaktivieren toggleHud: HUD-Sichtbarkeit an/aus placeBuilding: Gebäude platzieren - createMarker: Marker erstellen + createMarker: Markierung erstellen delete: Löschen pasteLastBlueprint: Letzte Blaupause einfügen lockBeltDirection: Bandplaner aktivieren plannerSwitchSide: "Planer: Seite wechseln" cutSelection: Ausschneiden copySelection: Kopieren + clearBelts: Fließbänder räumen clearSelection: Auswahl aufheben pipette: Pipette switchLayers: Ebenen wechseln @@ -237,8 +359,8 @@ ingame: black: Schwarz uncolored: Grau buildingPlacement: - cycleBuildingVariants: Drücke <key> zum Wechseln - hotkeyLabel: "Taste: <key>" + cycleBuildingVariants: Drücke <key> zum Wechseln. + hotkeyLabel: "Hotkey: <key>" infoTexts: speed: Geschw. range: Reichweite @@ -246,7 +368,7 @@ ingame: oneItemPerSecond: 1 Item / s itemsPerSecond: <x> Items / s itemsPerSecondDouble: (x2) - tiles: <x> Felder + tiles: <x> Kacheln levelCompleteNotification: levelTitle: Level <level> completed: Abgeschlossen @@ -289,13 +411,13 @@ ingame: blueprintPlacer: cost: Kosten waypoints: - waypoints: Marker + waypoints: Markierungen hub: Hub - description: Linksklick auf einen Marker, um dort hinzugelangen. Rechtsklick, um - ihn zu löschen.<br><br>Drücke <keybinding>, um einen Marker aus - deinem Blickwinkel, oder <strong>rechtsklicke</strong>, um einen - Marker auf der ausgewählten Position zu erschaffen. - creationSuccessNotification: Marker wurde erstellt. + description: Linksklick auf eine Markierung, um dort hinzugelangen. Rechtsklick, + um sie zu löschen.<br><br>Drücke <keybinding>, um eine Markierung + aus deinem Blickwinkel, oder <strong>rechtsklicke</strong>, um eine + Markierung auf der ausgewählten Position zu erschaffen. + creationSuccessNotification: Markierung wurde erstellt. shapeViewer: title: Ebenen empty: Leer @@ -303,47 +425,48 @@ ingame: interactiveTutorial: title: Einführung hints: - 1_1_extractor: Platziere einen <strong>Extrahierer</strong> auf der + 1_1_extractor: Platziere einen <strong>Extraktor</strong> auf der <strong>Kreisform</strong>, um sie zu extrahieren! - 1_2_conveyor: "Verbinde den Extrahierer mit einem <strong>Fließband</strong> und + 1_2_conveyor: "Verbinde den Extraktor mit einem <strong>Fließband</strong> und schließe ihn am Hub an!<br><br>Tipp: <strong>Drücke und ziehe</strong> das Fließband mit der Maus!" - 1_3_expand: "Dies ist <strong>KEIN</strong> Idle-Game! Baue mehr Extrahierer und + 1_3_expand: "Dies ist <strong>KEIN</strong> Idle-Game! Baue mehr Extraktoren und Fließbänder, um das Ziel schneller zu erreichen.<br><br>Tipp: Halte <strong>UMSCH</strong>, um mehrere Gebäude zu platzieren und nutze <strong>R</strong>, um sie zu rotieren." - 2_1_place_cutter: "Platziere nun einen <strong>Schneider</strong> um die Kreise - in zwei Hälften zu zerteilen.<br><br> Übrigens: Der Schneider - schneidet immer von <strong>oben nach unten</strong>, unabhängig - seiner Orientierung!" + 2_1_place_cutter: "Platziere nun einen <strong>Schneider</strong>, um die Kreise + zu halbieren.<br><br> Übrigens: Der Schneider teilt Items immer + von <strong>oben nach unten</strong>, unabhängig von seiner + Orientierung!" 2_2_place_trash: Der Schneider kann <strong>verstopfen</strong>!<br><br>Benutze einen <strong>Mülleimer</strong> um den aktuell (!) nicht benötigten Rest loszuwerden. - 2_3_more_cutters: "Gut gemacht! Platziere noch <strong>2 mehr Schneider</strong> - um das ganze zu beschleunigen.<br><br> Übrigens: Benutze die - <strong>Tasten 0-9</strong> um Gebäude schneller auszuwählen!" - 3_1_rectangles: "Lass uns ein paar Quadrate extrahieren! <strong>Baue 4 - Extrahierer</strong> und verbinde sie mit deinem HUB.<br><br> - PS: Halte <strong>SHIFT</strong> während du ein Fließband + 2_3_more_cutters: "Gut gemacht! Platziere noch <strong>zwei andere + Schneider</strong> um das Ganze zu beschleunigen.<br><br> + Übrigens: Benutze die <strong>Hotkeys 0-9</strong> um Gebäude + schneller auszuwählen!" + 3_1_rectangles: "Lass uns ein paar Quadrate extrahieren! <strong>Baue vier + Extraktoren</strong> und verbinde sie mit deinem Hub.<br><br> + PS: Halte <strong>SHIFT</strong>, während du ein Fließband ziehst, um den Fließbandplaner zu aktivieren!" - 21_1_place_quad_painter: Platzier den <strong>Vierfach-Färber</strong> und - organisier ein paar <strong>Kreise</strong>, + 21_1_place_quad_painter: Platziere den <strong>vierfachen Färber</strong> und + organisiere ein paar <strong>Kreise</strong>, sowie <strong>weiße</strong> und <strong>rote</strong> Farbe! - 21_2_switch_to_wires: Wechsle in die Wires-Ebene indem du <strong>E</strong> + 21_2_switch_to_wires: Wechsle in die Wires-Ebene, indem du <strong>E</strong> drückst!<br><br> Verbinde danach <strong>alle vier Eingänge</strong> mit Signalkabeln! 21_3_place_button: Perfekt! Platziere jetzt einen <strong>Schalter</strong> und verbinde ihn mit Signalkabeln. - 21_4_press_button: "Drücke den Schalter damit er ein <strong>wahres - Signal</strong> ausgibt, und damit den Färber aktiviert.<br><br> - PS: Du musst nicht alle Eingänge verbinden! Probiere mal nur 2 - aus." + 21_4_press_button: "Drücke den Schalter, damit er ein <strong>wahres + Signal</strong> ausgibt und den Färber aktiviert.<br><br> PS: Du + musst nicht alle Eingänge verbinden! Probiere es auch mal mit + zwei." connectedMiners: - one_miner: Ein Extrahierer - n_miners: <amount> Extrahierer + one_miner: Ein Extraktor + n_miners: <amount> Extraktoren limited_items: Begrenzt auf <max_throughput> watermark: - title: Demo-Version + title: Demoversion desc: Klicke hier, um die Vorteile der Vollversion zu sehen! get_on_steam: Zur Vollversion standaloneAdvantages: @@ -356,30 +479,72 @@ ingame: buildings: title: 18 Neue Gebäude desc: Automatisiere deine Fabrik! - savegames: - title: ∞ Speicherstände - desc: So viele dein Herz begehrt! + achievements: + title: Errungenschaften + desc: Hol sie dir alle! upgrades: title: ∞ Upgrade-Stufen desc: Diese Demo hat nur 5! markers: - title: ∞ Marker + title: ∞ Markierungen desc: Verliere nie den Überblick! wires: title: Wires-Ebene desc: Eine ganz neue Dimension! darkmode: title: Dark-Mode - desc: Werde nicht mehr geblendet! + desc: Gönn deinen Augen eine Auszeit! support: title: Unterstütze Mich - desc: Ich entwickle in meiner Freizeit! + desc: Ich entwickle das Spiel in meiner Freizeit! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Breite + zoneHeight: Höhe + trimZone: Zuschneiden + clearItems: Items löschen + clearBuildings: Gebäude löschen + resetPuzzle: Puzzle zurücksetzen + share: Teilen + report: Melden + puzzleEditorControls: + title: Puzzle-Editor + instructions: + - 1. Platziere einen <strong>Itemproduzenten</strong> um Formen und + Farben für den Spieler bereitzustellen + - 2. Produziere eine oder mehrere Formen, die der Spieler herstellen + soll und liefere diese zu einem oder mehreren + <strong>Zielakzeptoren</strong> + - 3. Sobald ein Zielakzeptor eine Form für eine gewisse Zeit erhält, + <strong>speichert dieser sie als Ziel</strong> (Angezeigt durch + den <strong>grünen Punkt</strong>). + - 4. Klicke auf das <strong>Schloss</strong>, um ein Gebäude für den + Spieler zu sperren. + - 5. Sobald du auf Überprüfen gedrückt hast, wird dein Puzzle + `validiert und du kannst es veröffentlichen. + - 6. Bei der Freigabe werden <strong>alle Gebäude entfernt</strong>. + Ausgenommen sind die Produzenten und Akzeptoren. Den Rest soll der + Spieler schließlich selbst herausfinden :) + puzzleCompletion: + title: Puzzle geschafft! + titleLike: "Klicke auf das Herz, wenn dir das Puzzle gefallen hat:" + titleRating: Wie schwierig fandest du das Puzzle? + titleRatingDesc: Deine Bewertung hilft mir, in Zukunft bessere Vorschläge zu machen + continueBtn: Weiterspielen + menuBtn: Menü + nextPuzzle: Nächstes Puzzle + puzzleMetadata: + author: Ersteller + shortKey: Kurzschlüssel + rating: Schwierigkeitsgrad + averageDuration: Durchschnittliche Dauer + completionRate: Abschlussrate shopUpgrades: belt: name: Fließbänder, Verteiler & Tunnel description: Geschw. x<currentMult> → x<newMult> miner: - name: Extrahierer + name: Extraktor description: Geschw. x<currentMult> → x<newMult> processors: name: Schneider, Rotierer & Stapler @@ -399,10 +564,10 @@ buildings: description: Transportiert Items. Halte und ziehe, um mehrere zu platzieren. miner: default: - name: Extrahierer + name: Extraktor description: Platziere ihn auf einer Form oder Farbe, um sie zu extrahieren. chainable: - name: Extrahierer (Kette) + name: Extraktor (Kette) description: Platziere ihn auf einer Form oder Farbe, um sie zu extrahieren. Kann verkettet werden. underground_belt: @@ -521,7 +686,8 @@ buildings: sind. not: name: NICHT-Gatter - description: Kehrt den Wert um. Macht aus einer "1" eine "0" und eine "0" aus einer "1". + description: Kehrt den Wert um. Macht aus einer "1" eine "0" und eine "0" aus + einer "1". xor: name: XODER-Gatter description: Gibt eine "1" aus, wenn genau einer der Eingänge wahr (Form, Farbe @@ -553,9 +719,9 @@ buildings: reader: default: name: Fließbandkontrolle - description: Misst den gemittelten Durchsatz des Fließbandes. Gibt zuätzlich den - zuletzt passierten Gegenstand auf der Wires-Ebene aus (sobald - freigeschaltet). + description: Misst den gemittelten Durchsatz des Fließbandes. Gibt zusätzlich + den zuletzt passierten Gegenstand auf der Wires-Ebene aus + (sobald freigeschaltet). analyzer: default: name: Formanalyse @@ -586,18 +752,30 @@ buildings: rechten Eingang. item_producer: default: - name: Item-Produzent + name: Itemproduzent description: Nur im Sandkastenmodus verfügbar. Gibt das Signal aus der Wires-Ebene als Item aus. + constant_producer: + default: + name: Itemproduzent + description: Gibt dauerhaft ein Form oder eine Farbe aus. + goal_acceptor: + default: + name: Zielakzeptor + description: Liefere gleichartige Formen, um diese als Ziel festzulegen. + block: + default: + name: Sperrblock + description: Ermöglicht das Blockieren einer Kachel. storyRewards: reward_cutter_and_trash: title: Formen zerschneiden desc: Du hast gerade den <strong>Schneider</strong> freigeschaltet, der Formen - in zwei Hälften schneidet, von oben nach unten, <b>unabhängig der - Orientierung</b>!<br><br>Achte darauf, den Abfall loszuwerden, oder - <b>er wird verstopfen und blockieren</b> - Zu diesem Zweck habe ich - dir den <strong>Mülleimer</strong> gegeben, der alles entsorgt, was - du hineintust! + vertikal halbiert, <b>unabhängig von seiner + Orientierung</b>!<br><br> Achte darauf, die Überreste loszuwerden, + sonst <b>verstopft und blockiert er</b> - Zu diesem Zweck habe ich + dir den <strong>Mülleimer</strong> gegeben. Er entsorgt alles, was + du ihm fütterst! reward_rotater: title: Rotieren desc: Der <strong>Rotierer</strong> wurde freigeschaltet! Er rotiert Formen im @@ -621,25 +799,25 @@ storyRewards: <strong>gestapelt</strong>. reward_balancer: title: Verteiler - desc: Der multifunktionale <strong>Verteiler</strong> wurde freigeschaltet! Er - kann benutzt werden, um größere Fabriken zu bauen, indem Fließbänder - <strong>aufgeteilt oder zusammengelegt</strong> werden! + desc: Der multifunktionale <strong>Verteiler</strong> wurde freigeschaltet! + Damit kannst du nun endlich größere Fabriken bauen. Er kann + Fließbänder <strong>aufteilen oder zusammenlegen</strong>! reward_tunnel: title: Tunnel desc: Der <strong>Tunnel</strong> wurde freigeschaltet! Du kannst Items nun unter Gebäuden oder Fließbändern hindurchleiten. reward_rotater_ccw: - title: Gegen UZS Rotieren + title: Gegen den UZS rotieren desc: Du hast eine zweite Variante des <strong>Rotierers</strong> freigeschaltet! Damit können Items gegen den Uhrzeigensinn gedreht werden. Wähle den Rotierer aus und <strong>drücke 'T', um auf verschiedene Varianten zuzugreifen</strong>. reward_miner_chainable: - title: Extrahierer (Kette) - desc: "Du hast den <strong>Kettenextrahierer</strong> freigeschaltet! Er kann - seine Ressourcen an andere Extrahierer - <strong>weiterleiten</strong>. <br><br> PS: Der alte Extrahierer - wurde jetzt in deiner Symbolleiste ersetzt!" + title: Extraktor (Kette) + desc: "Du hast den <strong>Kettenextraktor</strong> freigeschaltet! Er kann + seine Ressourcen an andere Extraktoren <strong>weitergeben</strong>. + <br><br> PS: Der alte Extraktor wurde jetzt in deiner Symbolleiste + ersetzt!" reward_underground_belt_tier_2: title: Tunnel Stufe II desc: Du hast eine neue Variante des <strong>Tunnels</strong> freigeschaltet! @@ -698,8 +876,8 @@ storyRewards: <strong>vierfachen Färber</strong>. Schließe die Eingänge, mit denen du die Quadranten färben möchtest, an ein Signalkabel auf der Wires-Ebene an!<br><br> Mit <strong>E</strong> wechselst du zwischen - den Ebenen. <br><br>PS: <strong>Aktiviere Hinweise</strong> in den - Einstellungen um das Tutorial anzuzeigen!" + den Ebenen. <br><br>PS: <strong>Aktiviere die Hinweise</strong> in + den Einstellungen, um das Tutorial anzuzeigen!" reward_filter: title: Itemfilter desc: Du hast den <strong>Itemfilter</strong> freigeschaltet! Items, die dem @@ -728,7 +906,7 @@ storyRewards: ODER-, XODER- und NICHT-Operationen ausführen.<br><br> Als Sahnehäubchen obendrauf stelle ich dir noch einen <strong>Transistor</strong> zur Verfügung. Houston, wir sind - Turing-vollständig! + turingmächtig! reward_virtual_processing: title: Virtuelle Verarbeitung desc: "Du hast gerade eine Menge neue Gebäude freigeschaltet! Mit ihnen kannst @@ -740,8 +918,8 @@ storyRewards: beliebige Form am Hub abgreift und herstellt. (Probiere es wenigstens!)<br><br> - Werde kreativ und lasse dir etwas Cooles einfallen, das du auf der Wires-Ebene umsetzen kannst. (Und teile es - auf dem Discord!)<br><br> - Spiele dich weiter durch die Level. Auf - deine Art!<br><br> Das Wichstigste an deiner Entscheidung ist: + auf dem Discord!)<br><br> - Spiele dich weiter durch die Levels. Auf + deine Art!<br><br> Das Wichtigste an deiner Entscheidung ist: Vergiss nicht, dabei Spaß zu haben!" no_reward: title: Nächstes Level @@ -754,14 +932,14 @@ storyRewards: desc: Du hast das nächste Level freigeschaltet! reward_freeplay: title: Freies Spiel - desc: Du hast es geschafft! Du bist im <strong>Freispiel-Modus</strong> + desc: Du hast es geschafft! Du bist im <strong>Freispielmodus</strong> angekommen! Das bedeutet, dass die abzuliefernden Formen jetzt <strong>zufällig</strong> erzeugt werden!<br><br> Da der Hub ab jetzt einen bestimmten <strong>Durchsatz</strong> benötigt, empfehle ich dringend, eine Maschine zu bauen, die automatisch die gewünschte Form liefert!<br><br> Der Hub gibt die gewünschte Form auf der - Wires-Ebene aus. Also musst du sie nur analysieren und basierend - darauf automatisch deine Fabrik konfigurieren. + Wires-Ebene aus, also musst du sie nur analysieren und deine Fabrik + dementsprechend konfigurieren (lassen). reward_demo_end: title: Ende der Demo desc: Du bist am Ende der Demo angekommen! @@ -781,7 +959,7 @@ settings: labels: uiScale: title: HUD Größe - description: Ändert die Größe der Benutzeroberfläche, basierend auf der + description: Ändert die Größe der Benutzeroberfläche basierend auf der Bildschirmauflösung. scales: super_small: Sehr klein @@ -802,7 +980,7 @@ settings: disabled: Deaktiviert scrollWheelSensitivity: title: Zoomempfindlichkeit - description: Ändert die Empfindlichkeit des Zooms (Sowohl Mausrad, als auch + description: Ändert die Empfindlichkeit des Zooms (Sowohl Mausrad als auch Trackpad). sensitivity: super_slow: Sehr langsam @@ -832,7 +1010,7 @@ settings: fullscreen: title: Vollbild description: Für das beste Erlebnis im Spiel wird der Vollbildmodus empfohlen - (Nur in der Standalone-Version verfügbar). + (Nur in der Vollversion verfügbar). soundsMuted: title: Geräusche stummschalten description: Bei Aktivierung werden alle Geräusche stummgeschaltet. @@ -865,18 +1043,20 @@ settings: halten. offerHints: title: Hinweise & Tutorials - description: Schaltet Hinweise und das Tutorial beim Spielen an und aus. + description: Schaltet Hinweise und das Tutorial beim Spielen an oder aus. Außerdem werden zu den Levels bestimmte Textfelder versteckt, - die den Einstieg erleichtern sollen. + die dir den Einstieg erleichtern sollen. enableTunnelSmartplace: title: Intelligente Tunnel description: Aktiviert das automatische Entfernen von überflüssigen Fließbändern bei der Platzierung von Tunneln. Außerdem funktioniert das - Ziehen von Tunneln und überschüssige werden ebenfalls entfernt. + Ziehen von Tunneln und überschüssige Tunnel werden ebenfalls + entfernt. vignette: title: Vignette description: Aktiviert den Vignetteneffekt, der den Rand des Bildschirms - zunehmend verdunkelt und das Lesen der Textfelder vereinfacht. + zunehmend verdunkelt und damit das Lesen der Textfelder + vereinfacht. rotationByBuilding: title: Rotation pro Gebäudetyp description: Jeder Gebäudetyp merkt sich eigenständig, in welche Richtung er @@ -888,12 +1068,12 @@ settings: Arbeitsgeschwindigkeit. Anderenfalls wird ein Bild mit Beschreibung angezeigt. disableCutDeleteWarnings: - title: Deaktiviere Warnungsdialog beim Löschen + title: Deaktiviere Warndialog beim Löschen description: Deaktiviert die Warnung, welche beim Löschen und Ausschneiden von - mehr als 100 Feldern angezeigt wird. + mehr als 100 Kacheln angezeigt wird. lowQualityMapResources: title: Minimalistische Ressourcen - description: Vereinfacht die Darstellung der Ressourcen auf der hereingezoomten + description: Vereinfacht die Darstellung der Ressourcen auf der hineingezoomten Karte zur Verbesserung der Leistung. Die Darstellung ist übersichtlicher, also probiere es ruhig aus! disableTileGrid: @@ -902,23 +1082,24 @@ settings: Außerdem vereinfacht es die Darstellung! clearCursorOnDeleteWhilePlacing: title: Abwählen mit Rechtsklick - description: Standardmäßig eingeschaltet, wählt es das aktuelle, zur Platzierung - ausgewählte Gebäude ab, wenn du die rechte Masutaste drückst. - Wenn du es abschaltest, kannst du mit der rechten Maustaste - Gebäude löschen, während du im Platzierungsmodus bist. + description: Ist standardmäßig eingeschaltet und wählt das aktuell ausgewählte + Gebäude ab, wenn du die rechte Maustaste drückst. Wenn du es + abschaltest, kannst du mit der rechten Maustaste Gebäude + löschen, während du im Platzierungsmodus bist. lowQualityTextures: title: Niedrige Texturqualität (Unschön) description: Das Spiel verwendet eine niedrigere Auflösung bei den Texturen. Allerdings leidet die Grafik des Spiels sehr darunter! displayChunkBorders: title: Chunk-Ränder anzeigen - description: Das Spiel ist in Blöcke (Chunks) aus je 16x16 Feldern aufgeteilt. + description: Das Spiel ist in Blöcke (Chunks) aus je 16x16 Kacheln aufgeteilt. Diese Einstellung lässt dich die Grenzen zwischen den Chunks anzeigen. pickMinerOnPatch: - title: Automatisch Extrahierer auswählen - description: Standardmäßig eingeschaltet, wählst du automatisch den Extrahierer, - wenn du mit der Pipette auf einen Ressourcenfleck zeigst + title: Automatisch Extraktor auswählen + description: Ist standardmäßig eingeschaltet und du wählst automatisch den + Extraktor, wenn du mit der Pipette auf einen Ressourcenfleck + zeigst. simplifiedBelts: title: Minimalistische Fließbänder (Unschön) description: Zur Verbesserung der Leistung werden die Items auf Fließbändern nur @@ -929,15 +1110,20 @@ settings: title: Scrollen am Bildschirmrand description: Damit kannst du dich über die Karte bewegen, indem du deinen Mauszeiger am Bildschirmrand platzierst. Die Geschwindigkeit - stimmt dabei mit den Tasten überein. + stimmt dabei mit den Pfeiltasten überein. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: In Richtung des Cursors zoomen + description: Wenn aktiviert, erfolgt der Zoom in Richtung deiner Mausposition, + statt in die Mitte des Bildschirms. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Größe der Ressourcen auf der Karte + description: Legt die Größe der Ressourcen auf der Karte (beim Herauszoomen) + fest. + shapeTooltipAlwaysOn: + title: Shape Tooltip - Immer anzeigen + description: Zeigt den Shape Tooltip immer an, wenn sich der Mauszeiger über + einem Gebäude befindet, anstatt 'ALT' drücken zu müssen. + tickrateHz: <amount> Hz keybindings: title: Tastenbelegung hint: "Tipp: Benutze STRG, UMSCH and ALT! Sie aktivieren verschiedene @@ -962,7 +1148,7 @@ keybindings: centerMap: Karte zentrieren mapZoomIn: Reinzoomen mapZoomOut: Rauszoomen - createMarker: Marker erstellen + createMarker: Markierung erstellen menuOpenShop: Upgrades menuOpenStats: Statistiken menuClose: Menü schließen @@ -973,7 +1159,7 @@ keybindings: belt: Fließband balancer: Verteiler underground_belt: Tunnel - miner: Extrahierer + miner: Extraktor cutter: Schneider rotater: Rotierer (90°) stacker: Stapler @@ -993,10 +1179,17 @@ keybindings: transistor: Transistor analyzer: Formanalyse comparator: Vergleich - item_producer: Item-Produzent (Sandkastenmodus) + item_producer: Itemproduzent (Sandkastenmodus) + constant_producer: Itemproduzent + goal_acceptor: Zielakzeptor + block: Sperrblock pipette: Pipette rotateWhilePlacing: Rotieren rotateInverseModifier: "Modifikator: stattdessen gegen den UZS rotieren" + rotateToUp: "Rotieren: Nach oben zeigend" + rotateToDown: "Rotieren: Nach unten zeigend" + rotateToRight: "Rotieren: Nach rechts zeigend" + rotateToLeft: "Rotieren: Nach links zeigend" cycleBuildingVariants: Nächste Variante auswählen confirmMassDelete: Löschen bestätigen pasteLastBlueprint: Letzte Blaupause einfügen @@ -1005,12 +1198,14 @@ keybindings: switchDirectionLockSide: "Bandplaner: Seite wechseln" copyWireValue: "Kabel: Wert unter Mauszeiger kopieren" massSelectStart: Halten und ziehen zum Beginnen - massSelectSelectMultiple: Mehrere Areale markieren - massSelectCopy: Areal kopieren - massSelectCut: Areal ausschneiden + massSelectSelectMultiple: Mehrere Bereiche markieren + massSelectCopy: Bereich kopieren + massSelectCut: Bereich ausschneiden + massSelectClear: Fließbänder räumen placementDisableAutoOrientation: Automatische Orientierung deaktivieren - placeMultiple: Im Platziermodus bleiben + placeMultiple: Im Platzierungsmodus bleiben placeInverse: Automatische Fließbandorientierung invertieren + showShapeTooltip: Zeige Shape Ausgabe Tooltip about: title: Über dieses Spiel body: Dieses Spiel ist quelloffen (Open Source) und wurde von <a @@ -1027,15 +1222,41 @@ about: target="_blank">Niklas</a> danken! Ohne unsere etlichen gemeinsamen Stunden in Factorio wäre dieses Projekt nie zustande gekommen. changelog: - title: Änderungen + title: Änderungsprotokoll demo: features: - restoringGames: Spiele wiederherstellen - importingGames: Spiele importieren + restoringGames: Spielstände wiederherstellen + importingGames: Spielstände importieren oneGameLimit: Beschränkt auf einen Spielstand customizeKeybindings: Tastenbelegung anpassen exportingBase: Ganze Fabrik als Foto exportieren settingNotAvailable: Nicht verfügbar in der Demo. +backendErrors: + ratelimit: Du führst deine Aktionen zu schnell aus. Bitte warte kurz. + invalid-api-key: Kommunikation mit dem Back-End fehlgeschlagen. Versuche das + Spiel neu zu starten oder zu updaten (Ungültiger Api-Schlüssel). + unauthorized: Kommunikation mit dem Back-End fehlgeschlagen. Versuche das Spiel + neu zu starten oder zu updaten (Nicht autorisiert). + bad-token: Kommunikation mit dem Back-End fehlgeschlagen. Versuche das Spiel neu + zu starten oder zu updaten (Ungültiger Token). + bad-id: Ungültige Puzzle-ID. + not-found: Das Puzzle konnte nicht gefunden werden. + bad-category: Die Kategorie konnte nicht gefunden werden. + bad-short-key: Dieser Kurzschlüssel ist ungültig. + profane-title: Dein Puzzletitel enthält gesperrte Wörter. + bad-title-too-many-spaces: Dein Puzzletitel ist zu kurz. + bad-shape-key-in-emitter: Einem Itemproduzent wurde ein ungültiges Item zugewiesen. + bad-shape-key-in-goal: Einem Zielakzeptor wurde ein ungültiges Item zugewiesen. + no-emitters: Dein Puzzle enthält keine Itemproduzenten. + no-goals: Dein Puzzle enthält keine Zielakzeptoren. + short-key-already-taken: Dieser Kurzschlüssel ist bereits vergeben, bitte wähle einen anderen. + can-not-report-your-own-puzzle: Du kannst dein eigenes Puzzle nicht melden. + bad-payload: Die Anfrage beinhaltet ungültige Daten. + bad-building-placement: Dein Puzzle beinhaltet ungültig platzierte Gebäude. + timeout: Es kam zu einer Zeitüberschreitung bei der Anfrage. + too-many-likes-already: Dieses Puzzle ist in der Community sehr beliebt. Wenn du + es trotzdem löschen möchtest, wende dich bitte an support@shapez.io! + no-permission: Dir fehlt die Berechtigung, um diese Aktion auszuführen. tips: - Der Hub akzeptiert alle Formen, nicht nur die aktuell geforderten! - Stelle sicher, dass deine Fabriken modular sind. Es zahlt sich irgendwann @@ -1050,7 +1271,7 @@ tips: gleichmäßig kaufst. - Serielle Ausführung ist effizienter als parallele. - Für viele Gebäude wirst du im Spielverlauf neue Varianten freischalten! - - Du kanst <b>T</b> drücken, um auf andere Varianten des Gebäudes zu + - Du kannst <b>T</b> drücken, um auf andere Varianten des Gebäudes zu wechseln. - Symmetrie ist der Schlüssel! - Du kannst verschiedene Arten von Tunneln miteinander verweben. @@ -1058,18 +1279,18 @@ tips: - Der Färber hat eine spiegelverkehrte Variante, die du mit <b>T</b> auswählen kannst. - Das richtige Verhältnis der Gebäude maximiert die Effizienz. - - Auf der gleichen Upgrade-Stufe genügen 5 Extrahierer für ein ganzes + - Auf der gleichen Upgrade-Stufe genügen 5 Extraktoren für ein ganzes Fließband. - Vergiss die Tunnel nicht! - Für maximale Effizienz musst du die Items nicht gleichmässig aufteilen. - Das Halten von <b>UMSCH</b> aktiviert den Bandplaner, der lange Fließbänder ganz einfach platziert. - Schneider teilen die Form immer vertikal, unabhängig von der Orientierung. - - Weiß erhälst du aus der Kombination aller 3 Grundfarben. + - Weiß erhältst du aus der Kombination aller 3 Grundfarben. - Das Lager gibt Items immer zuerst am linken Ausgang ab. - Es lohnt sich, Zeit in den Bau von wiederverwendbaren Designs zu stecken! - Das Halten von <b>STRG</b> ermöglicht dir, mehrere Gebäude zu platzieren. - - Du kanst <b>ALT</b> gedrückt halten, um die Richtung der Fließbänder + - Du kannst <b>ALT</b> gedrückt halten, um die Richtung der Fließbänder umzukehren. - Effizienz ist entscheidend! - Abbaubare Formen werden komplexer, je weiter sie vom Hub entfernt sind. @@ -1099,9 +1320,10 @@ tips: - Die Reißzwecke neben Formen in der Upgrade-Liste lässt sie dich am Bildschirm anheften. - Mische alle drei Grundfarben, um Weiß zu erhalten! - - Du hast eine unendlich grosse Karte, nutze den Platz und expandiere! + - Du hast eine unendlich große Karte, nutze den Platz und expandiere! - Probier auch mal Factorio! Es ist mein Lieblingsspiel. - - Der Vierfachschneider schneidet im Uhrzeigersinn von oben rechts beginnend! + - Der vierfache Schneider schneidet im Uhrzeigersinn von oben rechts + beginnend! - Du kannst deine Speicherstände im Hauptmenü herunterladen! - Diese Spiel hat viele nützliche Tastenbelegungen! Schau sie dir in den Einstellungen an. diff --git a/translations/base-el.yaml b/translations/base-el.yaml index ec0df592..7e221795 100644 --- a/translations/base-el.yaml +++ b/translations/base-el.yaml @@ -14,39 +14,14 @@ steamPage: While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages - advantages: - - <b>12 New Level</b> for a total of 26 levels - - <b>18 New Buildings</b> for a fully automated factory! - - <b>Unlimited Upgrade Tiers</b> for many hours of fun! - - <b>Wires Update</b> for an entirely new dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. - - Be sure to check out my trello board for the full roadmap! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Φόρτωση error: Σφάλμα @@ -78,6 +53,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: Demo Version intro: Get the standalone to unlock all features! @@ -95,9 +71,15 @@ mainMenu: savegameLevelUnknown: Άγνωστο Επίπεδο continue: Συνέχεια newGame: Καινούριο παιχνίδι - madeBy: Made by <author-link> + madeBy: Κατασκευασμένο απο <author-link> subreddit: Reddit savegameUnnamed: Unnamed + puzzleMode: Λειτουργία παζλ + back: Πίσω + puzzleDlcText: Σε αρέσει να συμπάγης και να βελτιστοποίεις εργοστάσια; Πάρε την + λειτουργεία παζλ στο Steam για ακόμη περισσότερη πλάκα! + puzzleDlcWishlist: Βαλτε το στην λίστα επιθυμιών τώρα! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -111,6 +93,9 @@ dialogs: viewUpdate: Προβολή ενημέρωσης showUpgrades: Εμφάνιση αναβαθμίσεων showKeybindings: Συνδυασμοί πλήκτρων + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Σφάλμα εισαγωγής text: "Αποτυχία εισαγωγής του αποθηκευμένου παιχνιδιού:" @@ -202,13 +187,13 @@ dialogs: desc: Δεν έχεις τους πόρους να επικολλήσεις αυτήν την περιοχή! Είσαι βέβαιος/η ότι θέλεις να την αποκόψεις; editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you - can generate <link>here</link>) + title: Βάλε σήμα + descItems: "Διάλεξε ενα προκαθορισμένο αντικείμενο:" + descShortKey: ... ή εισάγετε ενα <strong>ενα μικρό κλειδι</strong> απο ένα σχήμα + (Που μπορείς να παράγεις <link>εδώ</link>) renameSavegame: - title: Rename Savegame - desc: You can rename your savegame here. + title: Μετανόμασε το αποθηκευμένου παιχνιδι. + desc: Μπορείς να μετανομάσεις το αποθηκευμένο σου παιχνίδι εδω. tutorialVideoAvailable: title: Tutorial Available desc: There is a tutorial video available for this level! Would you like to @@ -217,6 +202,70 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Απέτυχε να φορτώσει το παζλ. + desc: "Δυστυχώς το παζλ δεν μπορούσε να φορτωθεί:" + submitPuzzle: + title: Υπόβαλε παζλ + descName: "Δώσε όνομα στο παζλ:" + descIcon: "Παρακαλούμε εισάγετε ενα μικρό κλειδι, που θα προβληθεί εως το + εικονίδιο για το παζλ (Μπορείς να το παράγεις <link>εδώ</link>, ή + διάλεξε ενα ενα από τα παρακάτω τυχαία προτεινόμενα σχήματα):" + placeholderName: Τίτλος παζλ + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Κακό παζλ + desc: "Το πάζλ απέτυχε να φορτώθει:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Σφάλμα λήψης + desc: "Απέτυχε να κατεβαθεί το πάζλ:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Δημοσίευτηκε το παζλ + desc: Συγχαρητήρια! Το παζλ σας έχει δημοσιευτεί και μπορείτε τώρα να το παίξουν + οι υπολοιποι. Τώρα μπορείτε να το βρείτε στην ενότητα "Τα παζλ μου". + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Μικρό κλειδι αντιγράφηκε + desc: Το μικρο κλειδή απο το παζλ (<key>) αντιγράφηκε στο πρόχειρο! Το μπορεί να + εισαχθεί στο μενού παζλ για πρόσβαση στο παζλ. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Κίνηση @@ -238,6 +287,7 @@ ingame: clearSelection: Εκκαθαρισμός επιλογής pipette: Σταγονόμετρο switchLayers: Εναλλαγή στρώματος + clearBelts: Clear belts buildingPlacement: cycleBuildingVariants: Πάτησε <key> για εναλλαγή μεταξύ παραλλαγών. hotkeyLabel: "Hotkey: <key>" @@ -370,9 +420,6 @@ ingame: buildings: title: 18 New Buildings desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! upgrades: title: ∞ Upgrade Tiers desc: This demo version has only 5! @@ -388,6 +435,53 @@ ingame: support: title: Support me desc: I develop it in my spare time! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Κατασκευαστείς παζλ. + instructions: + - 1. Τοποθετήστε τους <strong> σταθερούς παραγωγούς </strong> για να + δώσετε σχήματα και χρώματα στον + - 2. Δημιουργήστε ένα ή περισσότερα σχήματα που θέλετε να + δημιουργήσει ο παίκτης αργότερα και παραδώστε το σε έναν ή + περισσότερους <strong> Αποδέκτες στόχων </strong> + - 3. Μόλις ένας Αποδέκτης Στόχου λάβει ένα σχήμα για ένα ορισμένο + ποσό χρόνο, <strong> το αποθηκεύει ως στόχο </strong> που πρέπει + να κάνει ο παίκτης παράγει αργότερα (Υποδεικνύεται από το <strong> + πράσινο σήμα </strong>). + - 4. Κάντε κλικ στο <strong> κουμπί κλειδώματος </strong> σε ένα + κτίριο για να το απενεργοποίησετε. + - 5. Μόλις κάνετε κλικ στην κριτική, το παζλ σας θα επικυρωθεί και + εσείς μπορεί να το δημοσιεύσει. + - 6. Μετά την κυκλοφόρηση του παζλ, <strong> όλα τα κτίρια θα + αφαιρεθούν </strong> εκτός από τους παραγωγούς και τους αποδέκτες + στόχων - Αυτό είναι το μέρος που ο παίκτης υποτίθεται ότι θα + καταλάβει μόνοι του :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Ιμάντες, Διανομείς & Σήραγγες @@ -598,6 +692,18 @@ buildings: name: Item Producer description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Κοπή σχημάτων @@ -715,8 +821,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the @@ -933,7 +1039,12 @@ settings: title: Map Resources Size description: Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Συνδιασμοί πλήκτρων hint: "Συμβουλή: Φρόντισε να χρησιμοποιήσεις τα πλήκτρα CTRL, SHIFT και ALT! @@ -1007,6 +1118,15 @@ keybindings: comparator: Compare item_producer: Item Producer (Sandbox) copyWireValue: "Wires: Copy value below cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: Σχετικά με αυτό το παιχνίδι body: >- @@ -1099,3 +1219,88 @@ tips: - Press F4 to show your FPS and Tick Rate. - Press F4 twice to show the tile of your mouse and camera. - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 16677f0c..fff6b3d7 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -30,53 +30,25 @@ steamPage: intro: >- Do you like automation games? Then you are in the right place! - shapez.io is a relaxed game in which you have to build factories for the automated production of geometric shapes. As the level increases, the shapes become more and more complex, and you - have to spread out on the infinite map. + shapez.io is a relaxed game in which you have to build factories for the automated production of geometric shapes. As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! While you only have to process shapes at the - beginning, you will later have to color them - by extracting and mixing colors! + And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! While you only have to process shapes at the beginning, you will later have to color them - by extracting and mixing colors! Buying the game on Steam gives you access to the full version, but you can also play a demo at shapez.io first and decide later! - title_advantages: Standalone Advantages - advantages: - - <b>12 New Levels</b> for a total of 26 levels - - <b>18 New Buildings</b> for a fully automated factory! - - <b>Unlimited Upgrade Tiers</b> for many hours of fun! - - <b>Wires Update</b> for an entirely new dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ + what_others_say: What people say about shapez.io - title_future: Planned Content - planned: - - Blueprint Library - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - - title_open_source: This game is open source! - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. - - Be sure to check out my trello board for the full roadmap! - - title_links: Links - - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate + nothernlion_comment: >- + This game is great - I'm having a wonderful time playing, and time has flown by. + notch_comment: >- + Oh crap. I really should sleep, but I think I just figured out how to make a computer in shapez.io + steam_review_comment: >- + This game has stolen my life and I don't want it back. Very chill factory game that won't let me stop making my lines more efficient. global: loading: Loading error: Error + loggingIn: Logging in # How big numbers are rendered, e.g. "10,000" thousandsDivider: "," @@ -145,6 +117,79 @@ mainMenu: savegameLevel: Level <x> savegameLevelUnknown: Unknown Level savegameUnnamed: Unnamed + puzzleMode: Puzzle Mode + back: Back + + puzzleDlcText: >- + Do you enjoy compacting and optimizing factories? + Get the Puzzle DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc + +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking shapez.io in your library, selecting Properties > DLCs. + + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: Created + easy: Easy + medium: Medium + hard: Hard + completed: Completed + official: Tutorial + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) + + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: >- + One or more Goal Acceptors have not yet assigned an item. Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: >- + One or more Goal Acceptors are not getting enough items. Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: >- + One or more buildings are outside of the buildable area. Either increase the area or remove them. + autoComplete: >- + Your puzzle autocompletes itself! Please make sure your constant producers are not directly delivering to your goal acceptors. dialogs: buttons: @@ -159,6 +204,9 @@ dialogs: viewUpdate: View Update showUpgrades: Show Upgrades showKeybindings: Show Keybindings + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Import Error @@ -263,6 +311,9 @@ dialogs: Choose a pre-defined item: descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you can generate <link>here</link>) + editConstantProducer: + title: Set Item + markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -282,6 +333,91 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + puzzleLoadFailed: + title: Puzzles failed to load + desc: >- + Unfortunately the puzzles could not be loaded: + + submitPuzzle: + title: Submit Puzzle + descName: >- + Give your puzzle a name: + descIcon: >- + Please enter a unique short key, which will be shown as the icon of your puzzle (You can generate them <link>here</link>, or choose one of the randomly suggested shapes below): + + placeholderName: Puzzle Title + + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be outside the zone. + + puzzleLoadError: + title: Bad Puzzle + desc: >- + The puzzle failed to load: + + offlineMode: + title: Offline Mode + desc: >- + We couldn't reach the servers, so the game has to run in offline mode. Please make sure you have an active internet connection. + + puzzleDownloadError: + title: Download Error + desc: >- + Failed to download the puzzle: + + puzzleSubmitError: + title: Submission Error + desc: >- + Failed to submit your puzzle: + + puzzleSubmitOk: + title: Puzzle Published + desc: >- + Congratulations! Your puzzle has been published and can now be played by others. You can now find it in the "My puzzles" section. + + puzzleCreateOffline: + title: Offline Mode + desc: >- + Since you are offline, you will not be able to save and/or publish your puzzle. Would you still like to continue? + + puzzlePlayRegularRecommendation: + title: Recommendation + desc: >- + I <strong>strongly</strong> recommend playing the normal game to level 12 before attempting the puzzle DLC, otherwise you may encounter mechanics not yet introduced. Do you still want to continue? + + puzzleShare: + title: Short Key Copied + desc: >- + The short key of the puzzle (<key>) has been copied to your clipboard! It can be entered in the puzzle menu to access the puzzle. + + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + + puzzleReportComplete: + title: Thank you for your feedback! + desc: >- + The puzzle has been flagged. + + puzzleReportError: + title: Failed to report + desc: >- + Your report could not get processed: + + puzzleLoadShortKey: + title: Enter short key + desc: >- + Enter the short key of the puzzle to load it. + + puzzleDelete: + title: Delete Puzzle? + desc: >- + Are you sure you want to delete '<title>'? This can not be undone! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -302,6 +438,7 @@ ingame: plannerSwitchSide: Flip planner side cutSelection: Cut copySelection: Copy + clearBelts: Clear belts clearSelection: Clear selection pipette: Pipette switchLayers: Switch layers @@ -482,9 +619,9 @@ ingame: title: 18 New Buildings desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! + achievements: + title: Achievements + desc: Hunt them all! upgrades: title: ∞ Upgrade Tiers @@ -506,6 +643,47 @@ ingame: title: Support me desc: I develop the game in my spare time! + # puzzle mode + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + share: Share + report: Report + + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and colors to the player + - 2. Build one or more shapes you want the player to build later and deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of time, it <strong>saves it as a goal</strong> that the player must produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable it. + - 5. Once you click review, your puzzle will be validated and you can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> except for the Producers and Goal Acceptors - That's the part that the player is supposed to figure out for themselves, after all :) + + puzzleCompletion: + title: Puzzle Completed! + + titleLike: >- + Click the heart if you liked the puzzle: + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate + # All shop upgrades shopUpgrades: belt: @@ -730,6 +908,21 @@ buildings: name: Item Producer description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer. + constant_producer: + default: + name: &constant_producer Constant Producer + description: Constantly outputs a specified shape or color. + + goal_acceptor: + default: + name: &goal_acceptor Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + + block: + default: + name: &block Block + description: Allows you to block a tile. + storyRewards: # Those are the rewards gained from completing the store reward_cutter_and_trash: @@ -811,7 +1004,7 @@ storyRewards: title: Storage desc: >- You have unlocked the <strong>storage</strong> building - It allows you to store items up to a given capacity!<br><br> - It priorities the left output, so you can also use it as an <strong>overflow gate</strong>! + It prioritizes the left output, so you can also use it as an <strong>overflow gate</strong>! reward_blueprints: title: Blueprints @@ -906,7 +1099,7 @@ settings: staging: Staging prod: Production buildDate: Built <at-date> - + tickrateHz: <amount> Hz rangeSliderPercentage: <amount> % labels: @@ -1093,6 +1286,11 @@ settings: description: >- Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: >- + Whether to always show the shape tooltip when hovering buildings, instead of having to hold 'ALT'. + keybindings: title: Keybindings hint: >- @@ -1157,12 +1355,19 @@ keybindings: analyzer: *analyzer comparator: *comparator item_producer: Item Producer (Sandbox) + constant_producer: *constant_producer + goal_acceptor: *goal_acceptor + block: *block # --- pipette: Pipette rotateWhilePlacing: Rotate rotateInverseModifier: >- Modifier: Rotate CCW instead + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" cycleBuildingVariants: Cycle Variants confirmMassDelete: Delete area pasteLastBlueprint: Paste last blueprint @@ -1177,11 +1382,14 @@ keybindings: massSelectSelectMultiLayer: Select multiple Layers massSelectCopy: Copy area massSelectCut: Cut area + massSelectClear: Clear belts placementDisableAutoOrientation: Disable automatic orientation placeMultiple: Stay in placement mode placeInverse: Invert automatic belt orientation + showShapeTooltip: Show shape output tooltip + about: title: About this Game body: >- @@ -1208,6 +1416,29 @@ demo: settingNotAvailable: Not available in the demo. +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle already got too many likes. If you still want to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. + tips: - The hub will accept any input, not just the current shape! - Make sure your factories are modular - it will pay out! @@ -1229,6 +1460,7 @@ tips: - You don't need to divide up items evenly for full efficiency. - Holding <b>SHIFT</b> will activate the belt planner, letting you place long lines of belts easily. - Cutters always cut vertically, regardless of their orientation. + - Mix all three primary colors to get white. - The storage buffer prioritises the left output. - Invest time to build repeatable designs - it's worth it! - Holding <b>SHIFT</b> lets you place multiple buildings at a time. diff --git a/translations/base-es.yaml b/translations/base-es.yaml index 66197195..6606df52 100644 --- a/translations/base-es.yaml +++ b/translations/base-es.yaml @@ -14,39 +14,14 @@ steamPage: Mientras que sólo procesas formas al principio, tienes que colorearlas después - ¡para ello tienes que extraer y mezclar colores! Comprando el juego en Steam tienes acceso a la versión completa, ¡pero también puedes jugar una demo en shapez.io primero y decidir después! - title_advantages: Ventajas del juego - advantages: - - <b>12 nuevos niveles</b> de un total de 26 niveles - - <b>18 nuevos edificios</b> ¡Para una fábrica totalmente automatizada! - - <b>Nieveles infinitos de mejoras</b> ¡Para horas de diversión! - - ¡<b>Cables</b> para una dimensión completamente nueva! - - ¡<b>Modo oscuro</b>! - - Partidad guardadas ilimitadas - - Marcadores ilimitados - - ¡Me apoyarás! ❤️ - title_future: Contenido futuro - planned: - - Librería de planos (Exclusivo de Standalone) - - Logros de Steam - - Modo Puzzle - - Minimapa - - Mods - - Modo libre - - ... y mucho más! - title_open_source: Este juego es de código abierto! - title_links: Links - links: - discord: Discord oficial - roadmap: Roadmap - subreddit: Subreddit - source_code: Código fuente (GitHub) - translate: Ayuda a traducír - text_open_source: >- - Cualquiera puede contribuír, Estoy activamete involucrado en la comunidad y - trato de revisar todas las sugerencias además de tomar en cuenta los consejos - siempre que sea posible. - - ¡Asegurate de revisar mi página de Trello donde podrás encontrar el Roadmap! + what_others_say: Lo que otras personas dicen sobre shapez.io + nothernlion_comment: Este juego es estupendo - Estoy teniendo un tiempo + maravolloso jugano, y el tiempo ha pasado volando. + notch_comment: Miércoles. Verdaderamente debería dormir, pero creo que acabo de + descubrir como hacer un ordenador en shapez.io + steam_review_comment: Este juego ha robado mi vida y no la quiero de vuelta. Muy + relajante juego de fábrica que no me dejará hacer mis lineas más + eficientes. global: loading: Cargando error: Error @@ -78,6 +53,7 @@ global: escape: ESC shift: SHIFT space: ESPACIO + loggingIn: Iniciando sesión demoBanners: title: Versión de prueba intro: ¡Obtén el juego completo para desbloquear todas las características! @@ -97,6 +73,12 @@ mainMenu: savegameLevel: Nivel <x> savegameLevelUnknown: Nivel desconocido savegameUnnamed: Sin nombre + puzzleMode: Modo Puzle + back: Atrás + puzzleDlcText: ¿Disfrutas compactando y optimizando fábricas? ¡Consigue ahora el + DLC de Puzles en Steam para aún más diversión! + puzzleDlcWishlist: ¡Añádelo ahora a tu lista de deseos! + puzzleDlcViewNow: Ver Dlc dialogs: buttons: ok: OK @@ -110,6 +92,9 @@ dialogs: viewUpdate: Ver actualización showUpgrades: Ver mejoras showKeybindings: Ver atajos de teclado + retry: Reintentar + continue: Continuar + playOffline: Jugar Offline importSavegameError: title: Error de importación text: "Fallo al importar tu partida guardada:" @@ -121,8 +106,9 @@ dialogs: text: "No se ha podido cargar la partida guardada:" confirmSavegameDelete: title: Confirmar borrado - text: ¿Estás seguro de querér borrar el siguiente guardado?<br><br> - '<savegameName>' que está en el nivel <savegameLevel><br><br> ¡Esto no se puede deshacer! + text: ¿Estás seguro de que quieres borrar el siguiente guardado?<br><br> + '<savegameName>' que está en el nivel <savegameLevel><br><br> ¡Esto + no se puede deshacer! savegameDeletionError: title: Fallo al borrar text: "Fallo al borrar la partida guardada:" @@ -131,8 +117,8 @@ dialogs: text: Tienes que reinciar la partida para aplicar los cambios. editKeybinding: title: Cambiar atajos de teclado - desc: Pulsa la tecla o botón del ratón que quieras asignar, o presiona escape para - cancelar. + desc: Pulsa la tecla o botón del ratón que quieras asignar, o presiona escape + para cancelar. resetKeybindingsConfirmation: title: Reiniciar atajos de teclado desc: Esto devolverá todos los atajos de teclado a los valores por defecto. Por @@ -185,7 +171,9 @@ dialogs: createMarker: title: Nuevo marcador titleEdit: Editar marcador - desc: Dale un nombre significativo, tambien puedes incluir la <strong>clave</strong> de una forma (La cual puedes generar <link>aquí</link>) + desc: Dale un nombre significativo, tambien puedes incluir la + <strong>clave</strong> de una forma (La cual puedes generar + <link>aquí</link>) markerDemoLimit: desc: Solo puedes crear dos marcadores en la versión de prueba. ¡Obtén el juego completo para marcadores ilimitados! @@ -196,7 +184,7 @@ dialogs: crashear tu juego! editSignal: title: Establecer señal - descItems: "Elige un item pre-definido:" + descItems: "Elige un item predefinido:" descShortKey: ... o escribe la <strong>clave</strong> de una forma (La cual puedes generar <link>aquí</link>) renameSavegame: @@ -207,7 +195,74 @@ dialogs: desc: ¡Hay un video tutorial disponible para este nivel! ¿Te gustaría verlo? tutorialVideoAvailableForeignLanguage: title: Tutorial Disponible - desc: Hay un video tutorial disponible para este nivel, pero solo está disponible en inglés ¿Te gustaría verlo? + desc: Hay un video tutorial disponible para este nivel, pero solo está + disponible en inglés ¿Te gustaría verlo? + editConstantProducer: + title: Elegir item + puzzleLoadFailed: + title: Fallo al cargar los Puzles + desc: Desafortunadamente, no se pudieron cargar los puzles. + submitPuzzle: + title: Enviar Puzzle + descName: "Nombra tu puzle:" + descIcon: "Por favor ingresa una clave única, que será el icono de tu puzle + (Puedes generarlas <link>aquí</link>, o escoger una de las formas + sugeridas de forma aleatoria, aquí abajo):" + placeholderName: Título del Puzle + puzzleResizeBadBuildings: + title: No es posible cambiar el tamaño + desc: No puedes hacer el área más pequeña, puesto que algunos edificios estarían + fuera de esta. + puzzleLoadError: + title: Fallo al cargar el puzle + desc: "No se pudo cargar el puzle:" + offlineMode: + title: Modo sin conexión + desc: No pudimos conectar con los servidores, y por ello el juego debe funcionar + en el modo sin conexión. Por favor asegúrate de que tu conexión a + internet funciona correctamente. + puzzleDownloadError: + title: Fallo al descargar + desc: "Fallo al descargar el puzle:" + puzzleSubmitError: + title: Error al enviar + desc: "No pudimos enviar tu puzle:" + puzzleSubmitOk: + title: Puzle Publicado + desc: ¡Enhorabuena! Tu puzle ha sido publicado y ahora pueden jugarlo otros. + Puedes encontrarlo en la sección "Mis puzles". + puzzleCreateOffline: + title: Modo sin conexión + desc: Puesto que estás sin conexión, no podrás guardar y/o publicar tu puzle. + ¿Quieres continuar igualmente? + puzzlePlayRegularRecommendation: + title: Recomendación + desc: Te recomiendo <strong>fuertemente</strong> jugar el juego normal hasta el + nivel 12 antes de intentar el DLC de puzles, de otra manera puede + que te encuentres con mecánicas que aún no hemos introducido. + ¿Quieres continuar igualmente? + puzzleShare: + title: Clave Copiada + desc: Hemos copiado la clave de tu puzle (<key>) a tu portapapeles! Puedes + ponerlo en el menú de puzles para acceder al puzle. + puzzleReport: + title: Reportar Puzle + options: + profane: Profanidades + unsolvable: Imposible de resolver + trolling: Troll + puzzleReportComplete: + title: ¡Gracias por tu aporte! + desc: El puzle ha sido reportado exitosamente. + puzzleReportError: + title: No se pudo reportar + desc: "No pudimos procesar tu informe:" + puzzleLoadShortKey: + title: Introducir clave + desc: Introduce la clave del puzle para cargarlo. + puzzleDelete: + title: ¿Eliminar Puzle? + desc: ¿Estas seguro de querer eliminar '<title>'? ¡Esto no se puede deshacer! ingame: keybindingsOverlay: moveMap: Mover @@ -217,7 +272,7 @@ ingame: placeMultiple: Colocar varios reverseOrientation: Invertir la orientación disableAutoOrientation: Desactivar la autoorientación - toggleHud: Habilitar el HUD + toggleHud: Habilitar la interfaz placeBuilding: Colocar edificio createMarker: Crear marcador delete: Destruir @@ -229,6 +284,7 @@ ingame: clearSelection: Limpiar selección pipette: Cuentagotas switchLayers: Cambiar capas + clearBelts: Borrar cintas colors: red: Rojo green: Verde @@ -238,7 +294,7 @@ ingame: cyan: Cian white: Blanco black: Negro - uncolored: Gris + uncolored: Incoloro buildingPlacement: cycleBuildingVariants: Pulsa <key> para rotar por las distintas variantes. hotkeyLabel: "Tecla: <key>" @@ -269,18 +325,18 @@ ingame: dataSources: stored: title: Almacenado - description: Muestra la cantidad de figuras guardadas en tu HUB. + description: Muestra la cantidad de figuras guardadas en tu Centro. produced: title: Producido description: Muestra todas las figuras que tu fábrica al completo produce, incluyendo productos intermedios. delivered: title: Entregados - description: Muestra las figuras que son entregadas a tu HUB. + description: Muestra las figuras que son entregadas a tu Centro. noShapesProduced: Todavía no se han producido figuras. shapesDisplayUnits: second: <shapes> / s - minute: <shapes> / m + minute: <shapes> / min hour: <shapes> / h settingsMenu: playtime: Tiempo de juego @@ -294,7 +350,7 @@ ingame: cost: Coste waypoints: waypoints: Marcadores - hub: HUB + hub: Centro description: Click izquierdo sobre un marcador para ir ahí, click derecho para borrarlo. <br><br> Pulsa <keybinding> para crear un marcador de la vista actual o <strong>click derecho</strong> para crear un marcador @@ -310,7 +366,7 @@ ingame: 1_1_extractor: ¡Coloca un <strong>extractor</strong> encima de un <strong>círculo</strong> para extraerlo! 1_2_conveyor: "¡Conecta el extractor con una <strong>cinta - transportadora</strong> a tu HUB!<br><br> Pista: + transportadora</strong> a tu Centro!<br><br> Pista: ¡<strong>Pulsa y arrastra</strong> la cinta transportadora con el ratón!" 1_3_expand: '¡Esto <strong>NO</strong> es un "juego de esperar"! Construye más @@ -318,30 +374,32 @@ ingame: más rápido.<br><br> Pista: Mantén pulsado <strong>SHIFT</strong> para colocar varios extractores y usa <strong>R</strong> para rotarlos.' - 2_1_place_cutter: "¡Ahora pon un <strong>Cortador</strong> para dividir los circulos en dos - mitades!<br><br> PD: El cortador siempre corta de <strong>de arriba a - abajo</strong> independientemente de su orientación." - 2_2_place_trash: ¡El cortador se puede <strong>trabar y atorar</strong>!<br><br> Usa un - <strong>basurero</strong> para deshacerse de la actualmente (!) no - necesitada basura. - 2_3_more_cutters: "¡Buen trabajo! ¡Ahora pon <strong>2 cortadores más</strong> para acelerar - este lento proceso!<br><br> PD: Usa las teclas <strong>0-9 - </strong> para acceder a los edificios más rápido!" + 2_1_place_cutter: "¡Ahora pon un <strong>Cortador</strong> para dividir los + circulos en dos mitades!<br><br> PD: El cortador siempre corta + de <strong>de arriba a abajo</strong> independientemente de su + orientación." + 2_2_place_trash: ¡El cortador se puede <strong>trabar y atorar</strong>!<br><br> + Usa un <strong>basurero</strong> para deshacerse de la + actualmente (!) no necesitada basura. + 2_3_more_cutters: "¡Buen trabajo! ¡Ahora pon <strong>2 cortadores más</strong> + para acelerar este lento proceso!<br><br> PD: Usa las teclas + <strong>0-9 </strong> para acceder a los edificios más rápido!" 3_1_rectangles: "¡Ahora consigamos unos rectangulos! <strong>construye 4 - extractores</strong> y conectalos a el HUB.<br><br> PD: - Manten apretado <strong>SHIFT</strong> mientrás pones cintas transportadoras para activar - el planeador de cintas!" - 21_1_place_quad_painter: ¡Pon el <strong>pintaor cuadruple</strong> y consigue unos - <strong>circulos</strong>, el color <strong>blanco</strong> y el color - <strong>rojo</strong>! - 21_2_switch_to_wires: ¡Cambia a la capa de cables apretando la técla + extractores</strong> y conectalos a el Centro.<br><br> PD: + Manten apretado <strong>SHIFT</strong> mientrás pones cintas + transportadoras para activar el planeador de cintas!" + 21_1_place_quad_painter: ¡Pon el <strong>pintador cuádruple</strong> y consigue + unos <strong>círculos</strong>, el color <strong>blanco</strong> + y el color <strong>rojo</strong>! + 21_2_switch_to_wires: ¡Cambia a la capa de cables apretando la tecla <strong>E</strong>!<br><br> Luego <strong>conecta las cuatro - entradas</strong> de el pintador con cables! - 21_3_place_button: ¡Genial! ¡Ahora pon un <strong>Interruptor</strong> y conectalo - con cables! - 21_4_press_button: "Presiona el interruptor para hacer que <strong>emita una señal - verdadera</strong> lo cual activa el piintador.<br><br> PD: ¡No necesitas - conectar todas las entradas! Intenta conectando solo dos." + entradas</strong> del pintador con cables! + 21_3_place_button: ¡Genial! ¡Ahora pon un <strong>Interruptor</strong> y + conéctalo con cables! + 21_4_press_button: "Presiona el interruptor para hacer que <strong>emita una + señal</strong> lo cual activa el pintador.<br><br> PD: ¡No + necesitas conectar todas las entradas! Intenta conectando sólo + dos." connectedMiners: one_miner: 1 Minero n_miners: <amount> Mineros @@ -360,9 +418,6 @@ ingame: buildings: title: 18 nuevos edificios desc: ¡Automatiza completamente tu fabrica! - savegames: - title: Archivos de guardado infinitos - desc: ¡Tantos como desees! upgrades: title: Niveles infinitos de mejoras desc: ¡Esta demo solo tiene 5! @@ -378,6 +433,53 @@ ingame: support: title: Apoyame desc: ¡Desarrollo este juego en mi tiempo libre! + achievements: + title: Logros + desc: Atrapalos a todos! + puzzleEditorSettings: + zoneTitle: Área + zoneWidth: Anchura + zoneHeight: Altura + trimZone: Área de recorte + clearItems: Eliminar todos los elementos + share: Compartir + report: Reportar + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Editor de Puzles + instructions: + - 1. Pon <strong>Productores Constantes</strong> para proveer al + jugador de formas y colores. + - 2. Construye una o más formas que quieres que el jugador construya + más tarde y llévalo hacia uno o más <strong>Aceptadores de + Objetivos</strong>. + - 3. Cuando un Aceptador de Objetivos recibe una forma por cierto + tiempo, <strong>la guarda como un objetivo</strong> que el jugador + debe producir más tarde (Lo sabrás por el <strong>indicador + verde</strong>). + - 4. Haz clic en el <strong>candado</strong> de un edificio para + desactivarlo. + - 5. Una vez hagas clic en "revisar", tu puzle será validado y + podrás publicarlo. + - 6. Una vez publicado, <strong>todos los edificios serán + eliminados</strong> excepto los Productores and Aceptadores de + Objetivo - Esa es la parte que el jugador debe averiguar por sí + mismo, después de todo :) + puzzleCompletion: + title: Puzle Completado! + titleLike: "Haz click en el corazón si te gustó el puzle:" + titleRating: ¿Cuánta dificultad tuviste al resolver el puzle? + titleRatingDesc: Tu puntuación me ayudará a hacerte mejores sugerencias en el futuro + continueBtn: Continuar Jugando + menuBtn: Menú + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Autor + shortKey: Clave + rating: Puntuación de dificultad + averageDuration: Duración media + completionRate: Índice de finalización shopUpgrades: belt: name: Cintas transportadoras, Distribuidores y Túneles @@ -395,8 +497,8 @@ buildings: hub: deliver: Entregar toUnlock: para desbloquear - levelShortcut: LVL - endOfDemo: End of Demo + levelShortcut: Nivel + endOfDemo: Fin de la demo belt: default: name: Cinta Transportadora @@ -408,8 +510,8 @@ buildings: description: Te permite transportar energía second: name: Cable - description: Transfiere señales, que pueden ser items, colores o valores booleanos (1 / 0). - Cables de diferentes colores no se conectan. + description: Transfiere señales, que pueden ser items, colores o valores + booleanos (1 / 0). Cables de diferentes colores no se conectan. miner: default: name: Extractor @@ -445,7 +547,7 @@ buildings: name: Rotador (Inverso) description: Rota las figuras en sentido antihorario 90 grados. rotate180: - name: Rotador (180) + name: Rotador (180º) description: Rota formas en 180 grados. stacker: default: @@ -471,17 +573,18 @@ buildings: la entrada de arriba. quad: name: Pintor (Cuádruple) - description: Te permite colorear cada cuadrante de la forma individualemte. ¡Solo las - ranuras con una <strong>señal verdadera</strong> en la capa de cables - seran pintadas! + description: Te permite colorear cada cuadrante de la forma individualemte. + ¡Solo las ranuras con una <strong>señal verdadera</strong> en la + capa de cables seran pintadas! trash: default: name: Basurero description: Acepta formas desde todos los lados y las destruye. Para siempre. balancer: default: - name: Balanceador - description: Multifuncional - Distribuye igualmente todas las entradas en las salidas. + name: Equlibrador + description: Multifuncional - Distribuye igualmente todas las entradas en las + salidas. merger: name: Unión (compacta) description: Junta dos cintas transportadoras en una. @@ -497,80 +600,86 @@ buildings: storage: default: name: Almacén - description: Guarda items en exceso, hasta una dada capacidad. Prioritiza la salida - de la izquierda y puede ser usada como una puerta de desbordamiento. + description: Guarda items en exceso, hasta una dada capacidad. Prioritiza la + salida de la izquierda y puede ser usada como una puerta de + desbordamiento. wire_tunnel: default: - name: Cruze de cables + name: Cruce de cables description: Permite que dos cables se cruzen sin conectarse. constant_signal: default: - name: Señal costante - description: Emite una señal constante, que puede ser una forma, color o valor booleano (1 / 0). + name: Señal constante + description: Emite una señal constante, que puede ser una forma, color o valor + booleano (1 / 0). lever: default: name: Interruptor - description: Puede ser activado para emitir una señal booleana (1 / 0) en la capa de cables, - la cual puede ser usada por ejemplo para un filtro de items. + description: Puede ser activado para emitir una señal booleana (1 / 0) en la + capa de cables, la cual puede ser usada por ejemplo para un + filtro de items. logic_gate: default: name: Puerta AND - description: Emite el valor booleano "1" si ambas entradas son verdaderas. (Verdadeas significa una forma, - color o valor booleano "1") + description: Emite el valor booleano "1" si ambas entradas son verdaderas. + (Verdaderas significa una forma, color o valor booleano "1") not: name: Puerta NOT - description: Emite el valor booleano "1" si ambas entradas no son verdaderas. (Verdadeas significa una forma, - color o valor booleano "1") + description: Emite el valor booleano "1" si ambas entradas no son verdaderas. + (Verdaderas significa una forma, color o valor booleano "1") xor: name: Puerta XOR - description: Emite el valor booleano "1" si una de las entradas es verdadera, pero no si ambas lo son. - (Verdadeas significa una forma, - color o valor booleano "1") + description: Emite el valor booleano "1" si una de las entradas es verdadera, + pero no si ambas lo son. (Verdaderas significa una forma, color + o valor booleano "1") or: name: Puerta OR - description: Emite el valor booleano "1" Si una de las entradas es verdadera. (Verdadeas significa una forma, - color o valor booleano "1") + description: Emite el valor booleano "1" Si una de las entradas es verdadera. + (Verdaderas significa una forma, color o valor booleano "1") transistor: default: name: Transistor - description: Envia la señal de abajo si la señal del costado es verdadera (Verdadeas significa una forma, - color o valor booleano "1"). + description: Envia la señal de abajo si la señal del costado es verdadera + (Verdaderas significa una forma, color o valor booleano "1"). mirrored: name: Transistor - description: Envia la señal de abajo si la señal del costado es verdadera (Verdadeas significa una forma, - color o valor booleano "1"). + description: Envia la señal de abajo si la señal del costado es verdadera + (Verdaderas significa una forma, color o valor booleano "1"). filter: default: name: Filtro - description: Conecta una señal para enviar todas las que coincidan hacia arriba y las demás - hacia la derecha. También puede ser controlada por señales booleanas. + description: Conecta una señal para enviar todas las que coincidan hacia arriba + y las demás hacia la derecha. También puede ser controlada por + señales booleanas. display: default: name: Monitor - description: Conecta una señal para mostrarla en el monitor - Puede ser una forma, - color o valor booleano. + description: Conecta una señal para mostrarla en el monitor - Puede ser una + forma, color o valor booleano. reader: default: name: Lector de cinta - description: Te permite medir la cantidad media de items que pasan por la cinta. Emite el último - item leído en la capa de cables (una vez desbloquada). + description: Te permite medir la cantidad media de items que pasan por la cinta. + Emite el último item leído en la capa de cables (una vez + desbloquada). analyzer: default: name: Analizador de formas - description: analiza el cuadrante de arriba a la derecha de la capa más baja de la forma - y devuelve su figura y color. + description: Analiza el cuadrante de arriba a la derecha de la capa más baja de + la forma y devuelve su figura y color. comparator: default: name: Comparador - description: Devuelve el valor booleano "1" Si ambas señales son exactamente iguales. Puede comparar - formas, items y valores booleanos. + description: Devuelve el valor booleano "1" Si ambas señales son exactamente + iguales. Puede comparar formas, items y valores booleanos. virtual_processor: default: name: Cortador virtual description: Corta virtualmente la forma en dos. rotater: name: Rotador virtual - description: Rota virtualmente la forma, tanto en sentido del horario como sentido anti-horario. + description: Rota virtualmente la forma, tanto en sentido del horario como + sentido anti-horario. unstacker: name: Desapilador virtual description: Extrae virtualmente la capa más alta en la salida a la derecha y @@ -585,17 +694,30 @@ buildings: item_producer: default: name: Productor de items - description: Solo disponible en modo libre, envía la señal recivida de la - capa de cables en la capa regular. + description: Solo disponible en modo libre, envía la señal recibida de la capa + de cables en la capa regular. + constant_producer: + default: + name: Productor de una sola pieza + description: Da constantemente la figura o el color especificados. + goal_acceptor: + default: + name: Aceptador de objetivos + description: Tranporta figuras al aceptador de objetivos para ponerlas como + objetivo. + block: + default: + name: Bloque + description: Permite bloquear una celda. storyRewards: reward_cutter_and_trash: title: Cortador de figuras - desc: ¡Acabas de desbloquear el <strong>cortador</strong>, el cual corta formas por la mitad - de arriba a abajo <strong>independientemente de su + desc: ¡Acabas de desbloquear el <strong>cortador</strong>, el cual corta formas + por la mitad de arriba a abajo <strong>independientemente de su orientacion</strong>!<br><br>Asegurate de deshacerte de la basura, o - sino <strong>se trabará y parará</strong> - Por este proposite - Te he dado el <strong>basurero</strong>, el cual destruye - todo lo que pongas dentro de él! + sino <strong>se trabará y parará</strong> - Por este proposite Te he + dado el <strong>basurero</strong>, el cual destruye todo lo que + pongas dentro de él! reward_rotater: title: Rotador desc: ¡El <strong>rotador</strong> se ha desbloqueado! Rota figuras en sentido @@ -620,8 +742,8 @@ storyRewards: reward_splitter: title: Separador/Fusionador desc: Has desbloqueado el <strong>separador</strong> , una variante de el - <strong>balanceador</strong> - Acepta una entrada y la separa - en dos! + <strong>balanceador</strong> - Acepta una entrada y la separa en + dos! reward_tunnel: title: Túnel desc: El <strong>túnel</strong> se ha desbloqueado - ¡Ahora puedes transportar @@ -635,8 +757,8 @@ storyRewards: title: Extractor en cadena desc: "¡Has desbloqueado el <strong>extractor en cadena</strong>! ¡Este puede <strong>enviar sus recursos</strong> a otros extractores así puedes - extraer recursos más eficientemente!<br><br> PD: ¡El extractor - viejo ha sido reemplazado en tu barra de herramientas!" + extraer recursos más eficientemente!<br><br> PD: ¡El extractor viejo + ha sido reemplazado en tu barra de herramientas!" reward_underground_belt_tier_2: title: Túnel nivel II desc: Has desbloqueado una nueva variante del <strong>túnel</strong> - ¡Tiene un @@ -653,18 +775,21 @@ storyRewards: consumiendo solo un color en vez de dos! reward_storage: title: Almacenamiento intermedio - desc: Haz desbloquado el edificio de <strong>almacenamiento</strong> - ¡Te permite - guardar items hasta una capacidad determinada!<br><br> Prioriza la salida - de la izquierda, por lo que tambien puedes suarlo como una <strong>puerta de desbordamiento</strong>! + desc: Haz desbloquado el edificio de <strong>almacenamiento</strong> - ¡Te + permite guardar items hasta una capacidad determinada!<br><br> + Prioriza la salida de la izquierda, por lo que tambien puedes suarlo + como una <strong>puerta de desbordamiento</strong>! reward_freeplay: title: Juego libre - desc: ¡Lo hiciste! Haz desbloqueado el <strong>modo de juego libre</strong>! ¡Esto significa - que las formas ahora son <strong>aleatoriamente</strong> generadas!<br><br> - Debído a que desde ahora de adelante el HUB pedrirá una cantidad especifica de formas <strong>por segundo</strong> - ¡Te recomiendo encarecidamente que construyas una maquina que automáticamente - envíe la forma pedida!<br><br> El HUB emite la forma - pedida en la capa de cables, así que todo lo que tienes que hacer es analizarla y - automaticamente configurar tu fabrica basada en ello. + desc: ¡Lo hiciste! Has desbloqueado el <strong>modo de juego libre</strong>! + ¡Esto significa que las formas ahora son + <strong>aleatoriamente</strong> generadas!<br><br> Debido a que + desde ahora de adelante el Centro pedirá una cantidad específica de + formas <strong>por segundo</strong>, ¡Te recomiendo encarecidamente + que construyas una máquina que automáticamente envíe la forma + pedida!<br><br> El Centro emite la forma pedida en la capa de + cables, así que todo lo que tienes que hacer es analizarla y + automáticamente configurar tu fábrica basada en ello. reward_blueprints: title: Planos desc: ¡Ahora puedes <strong>copiar y pegar</strong> partes de tu fábrica! @@ -685,67 +810,71 @@ storyRewards: completo! reward_balancer: title: Balanceador - desc: El <strong>balanceador</strong> multifuncional ha sido desbloqueado - ¡Este puede - ser usado para construir fabricas más grandes al <strong>separar y mezclar - items</strong> hacia múltiples cintas! + desc: El <strong>balanceador</strong> multifuncional ha sido desbloqueado - + ¡Este puede ser usado para construir fabricas más grandes al + <strong>separar y mezclar items</strong> hacia múltiples cintas! reward_merger: title: Unión compacta desc: Has desbloqueado la variante <strong>unión</strong> de el - <strong>balanceador</strong> - ¡Acepta dos entradas y las une en - una sola cinta! + <strong>balanceador</strong> - ¡Acepta dos entradas y las une en una + sola cinta! reward_belt_reader: title: Lector de cinta - desc: ¡Has desbloqueado el <strong>lector de cinta</strong>! Este te permite - medir la cantidad de items que pasan por esta.<br><brY tan solo espera hasta debloquear - los cables - ¡Ahí si que se vuelve útil! + desc: You have now unlocked the <strong>belt reader</strong>! It allows you to + measure the throughput of a belt.<br><br>And wait until you unlock + wires - then it gets really useful! reward_rotater_180: title: Rotador (180 grados) desc: ¡Has desbloqueado el <strong>rotador</strong> de 180 grados! - Te permite rotar una forma en 180 grados (¡Sorpresa! :D) reward_display: title: Monitor - desc: "Has desbloqueado el <strong>Monitor</strong> - ¡Conecta una señal dentro de - la capa de cables para visualizarla!<br><br> PD: ¿Te has dado cuenta que el lector - de cinta y el almacenador emiten su último item leído? ¡Trata de conectarlo - al monitor!" + desc: "Has desbloqueado el <strong>Monitor</strong> - ¡Conecta una señal dentro + de la capa de cables para visualizarla!<br><br> PD: ¿Te has dado + cuenta que el lector de cinta y el almacenador emiten su último item + leído? ¡Trata de conectarlo al monitor!" reward_constant_signal: title: Señal constante desc: ¡Has desbloqueado la <strong>señal constante</strong> en la capa de - cables! Esto es muy útil para conectar a el <strong>filtro de items</strong> - por ejemplo.<br><br> La señal constante puede emitir - <strong>formas</strong>, <strong>colores</strong> o - <strong>valores booleanos</strong> (1 / 0). + cables! Esto es muy útil para conectar a el <strong>filtro de + items</strong> por ejemplo.<br><br> La señal constante puede emitir + <strong>formas</strong>, <strong>colores</strong> o <strong>valores + booleanos</strong> (1 / 0). reward_logic_gates: title: Puertas lógicas - desc: ¡Has desbloqueado las <strong>puertas lógicas</strong>! No es necesario que te emociones - por esto ¡Pero en realidad es super geniall!<br><br> Con estas puertas - ahora puedes computar operaciones AND, OR, XOR y NOT.<br><br> Como bonus - también te he dado el <strong>transistor</strong>! + desc: ¡Has desbloqueado las <strong>puertas lógicas</strong>! No es necesario + que te emociones por esto ¡Pero en realidad es super + geniall!<br><br> Con estas puertas ahora puedes computar operaciones + AND, OR, XOR y NOT.<br><br> Como bonus también te he dado el + <strong>transistor</strong>! reward_virtual_processing: title: Procesamiento virtual desc: ¡Acabo de darte un monton de nuevos edificios los cuales te permiten - <strong>simular el procesamiento de las formas</strong>!<br><br> ¡Ahora puedes - simular un cortador, rotador, apilador y más dentro de la capa de cables! - Con esto ahora tienes tres opciones para continuar el juego:<br><br> - - Construir una <strong>maquina automatizada</strong> para crear cualquier - forma que te pida el HUB (¡Te recomiendo que lo intentes!).<br><br> - Construir - algo genial con los cables.<br><br> - Continuar jugando de - la manera regular.<br><br> ¡Cualquiera que eligas, recuerda divertirte! + <strong>simular el procesamiento de las formas</strong>!<br><br> + ¡Ahora puedes simular un cortador, rotador, apilador y más dentro de + la capa de cables! Con esto ahora tienes tres opciones para + continuar el juego:<br><br> - Construir una <strong>maquina + automatizada</strong> para crear cualquier forma que te pida el + Centro (¡Te recomiendo que lo intentes!).<br><br> - Construir algo + genial con los cables.<br><br> - Continuar jugando de la manera + regular.<br><br> ¡Cualquiera que eligas, recuerda divertirte! reward_wires_painter_and_levers: title: Cables y pintor cuádruple desc: "Has desbloqueado la <strong>Capa de cables</strong>: ¡Es una capa separada a la capa regular e introduce un montón de mecanicas nuevas!<br><br> Para empezar te he dado el <strong>Pintor Cuádruple</strong> - ¡Conecta las ranuras que quieras pintar usando - la capa de cables!<br><br> Para cambiar a la capa de cables, presiona la tecla - <strong>E</strong>. <br><br> PD: ¡Activa las <strong>pistas</strong> en - las opciones para activar el tutorial de cables!" + la capa de cables!<br><br> Para cambiar a la capa de cables, + presiona la tecla <strong>E</strong>. <br><br> PD: ¡Activa las + <strong>pistas</strong> en las opciones para activar el tutorial de + cables!" reward_filter: title: Filtro de items - desc: Has desbloqueado el <strong>Filtro de Items</strong>! Este enviará los items tanto - arriaba como a la derecha dependiendo en si coinciden con la - señal de la capa de cables o no.<br><br> Tambien puedes enviar una señal - booleana (1 / 0) para activarlo o desactivarlo completamente. + desc: Has desbloqueado el <strong>Filtro de Items</strong>! Este enviará los + items tanto arriba como a la derecha dependiendo en si coinciden con + la señal de la capa de cables o no.<br><br> También puedes enviar + una señal booleana (1 / 0) para activarlo o desactivarlo + completamente. reward_demo_end: title: Fin de la demo desc: ¡Has llegado al final de la demo! @@ -874,48 +1003,56 @@ settings: description: Establece el volumen para la música lowQualityMapResources: title: Recursos del mapa de baja calidad - description: Simplifica el renderizado de los recusos en el mapa al ser vistos desde cerca, - mejorando el rendimiento. ¡Incluso se ve más limpio, asi que asegurate de probarlo! + description: Simplifica el renderizado de los recusos en el mapa al ser vistos + desde cerca, mejorando el rendimiento. ¡Incluso se ve más + limpio, asi que asegurate de probarlo! disableTileGrid: title: Deshabilitar grilla - description: Deshabilitar la grilla puede ayudar con el rendimiento. ¡También hace - que el juego se vea más limpio! + description: Deshabilitar la grilla puede ayudar con el rendimiento. ¡También + hace que el juego se vea más limpio! clearCursorOnDeleteWhilePlacing: - title: Limpiar el cursos al apretar click derecho - description: Activado por defecto, Limpia el cursor al hacer click derecho + title: Limpiar el cursor al apretar click derecho + description: Activado por defecto, limpia el cursor al hacer click derecho mientras tengas un un edificio seleccionado. Si se deshabilita, puedes eliminar edificios al hacer click derecho mientras pones un edificio. lowQualityTextures: title: Texturas de baja calidad (Feo) - description: Usa texturas de baja calidad para mejorar el rendimiento. ¡Esto hará que el - juego se vea muy feo! + description: Usa texturas de baja calidad para mejorar el rendimiento. ¡Esto + hará que el juego se vea muy feo! displayChunkBorders: title: Mostrar bordes de chunk - description: Este juego está dividido en chunks de 16x16 cuadrados, si esta opción es - habilitada los bordes de cada chunk serán mostrados. + description: Este juego está dividido en chunks de 16x16 cuadrados, si esta + opción es habilitada los bordes de cada chunk serán mostrados. pickMinerOnPatch: - title: Elegír el minero en la veta de recursos - description: Activado pir defecto, selecciona el minero si usas el cuentagotas sobre - una veta de recursos. + title: Elegir el minero en la veta de recursos + description: Activado por defecto, selecciona el minero si usas el cuentagotas + sobre una veta de recursos. simplifiedBelts: title: Cintas trasportadoras simplificadas (Feo) - description: No rederiza los items en las cintas trasportadoras exceptuando al pasar el cursor sobre la cinta para mejorar - el rendimiento. No recomiendo jugar con esta opcion activada - a menos que necesites fuertemente mejorar el rendimiento. + description: No rederiza los items en las cintas trasportadoras exceptuando al + pasar el cursor sobre la cinta para mejorar el rendimiento. No + recomiendo jugar con esta opción activada a menos que necesites + fuertemente mejorar el rendimiento. enableMousePan: title: Habilitar movimiento con mouse description: Te permite mover el mapa moviendo el cursor hacia los bordes de la - pantalla. La velocidad depende de la opción de velocidad de movimiento. + pantalla. La velocidad depende de la opción de velocidad de + movimiento. zoomToCursor: title: Hacer zoom donde está el cursor - description: Si se activa, se hará zoom en al dirección donde esté tu cursor, - a diferencia de hacer zoom en el centro de la pantalla. + description: Si se activa, se hará zoom en al dirección donde esté tu cursor, a + diferencia de hacer zoom en el centro de la pantalla. mapResourcesScale: title: Tamaño de recursos en el mapa - description: Controla el tamaño de los recursos en la vista de aerea del mapa (Al hacer zoom - minimo). + description: Controla el tamaño de los recursos en la vista de aérea del mapa + (Al hacer zoom mínimo). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Atajos de teclado hint: "Pista: ¡Asegúrate de usar CTRL, SHIFT y ALT! Habilitan distintas opciones @@ -944,7 +1081,7 @@ keybindings: menuOpenShop: Mejoras menuOpenStats: Estadísticas menuClose: Cerrar menú - toggleHud: Activar HUD + toggleHud: Activar Interfaz toggleFPSInfo: Activar FPS e información de depurado switchLayers: Cambiar capas exportScreenshot: Exportar la base completa como imagen @@ -966,7 +1103,7 @@ keybindings: pasteLastBlueprint: Pegar último plano cycleBuildings: Ciclar edificios lockBeltDirection: Activar planificador de cintas transportadoras - switchDirectionLockSide: "Planner: Cambiar sentido" + switchDirectionLockSide: "Planificador: Cambiar sentido" massSelectStart: Mantén pulsado y arrastra para empezar massSelectSelectMultiple: Seleccionar múltiples áreas massSelectCopy: Copiar área @@ -989,6 +1126,15 @@ keybindings: comparator: Comparador item_producer: Productor de items (Sandbox) copyWireValue: "Cables: Copiar valor bajo el cursos" + rotateToUp: "Rotar: Apuntar hacia arriba" + rotateToDown: "Rotar: Apuntar hacia abajo" + rotateToRight: "Rotar: Apuntar hacia la derecha" + rotateToLeft: "Rotar: Apuntar hacia la izquierda" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: Sobre el juego body: >- @@ -1014,60 +1160,169 @@ demo: exportingBase: Exportando la base completa como imagen settingNotAvailable: No disponible en la versión de prueba. tips: - - El HUB acepta entradas de cualquier tipo ¡No solo la forma actual! + - El Centro acepta entradas de cualquier tipo ¡No solo la forma actual! - Trata de que tus fábricas sean modulares - ¡Te servirá en el futuro! - - No construyas muy cerca del HUB ¡O se volverá todo un caos! + - No construyas muy cerca del Centro ¡O se volverá todo un caos! - Si apilar las formas no funciona, intenta intercambiar las entradas. - Puedes activar la dirección del planeador de cintas apretando <b>R</b>. - Mantener apretado <b>CTRL</b> te permite poner cintas sin auto-orientación. - - Las proporciones siempre serán las mismas. Siempre y cuando todas las mejoras estén al mismo nivel. + - Las proporciones siempre serán las mismas. Siempre y cuando todas las + mejoras estén al mismo nivel. - La ejecución en serie es más eficiente que la paralela. - ¡Desbloquearás más variantes de edificios más adelante en el juego! - Puedes usar <b>T</b> para cambiar entre diferentes variantes. - ¡La simetría es clave! - Los túneles de diferentes niveles pueden cruzarse entre sí - Intenta construir fábricas compactas - ¡Me lo agradecerás luego! - - El pintor tiene una variante en espejo que puedes seleccionar con la técla <b>T</b> + - El pintor tiene una variante en espejo que puedes seleccionar con la técla + <b>T</b> - Tener una buena proporción entre edificion maximizará su eficiencia - - A su máximo nivel, 5 extractores llenarán por completo una cinta trasnportadora. + - A su máximo nivel, 5 extractores llenarán por completo una cinta + trasnportadora. - ¡No te olvides de utilizár túneles! - - No es necesario dividir los items de manera uniforme para conseguír la mayor eficiencia. - - Mantener apretado <b>SHIFT</b> activará el planeador de cintas, permitiendote poner - largas lineas de cintas fácilmente. + - No es necesario dividir los items de manera uniforme para conseguír la + mayor eficiencia. + - Mantener apretado <b>SHIFT</b> activará el planeador de cintas, + permitiendote poner largas lineas de cintas fácilmente. - Los cortadores siempre cortan verticalmente, sin importar su orientación. - Para obtener blanco solo mexcla todos los colores. - El buffer de almacenamiento prioriza la primera salida. - Invierte tiempo en construir diseños repetibles, ¡vale la pena! - Mantener apretado <b>CTRL</b> te permite poner varios edificios a la vez. - - Puedes apretar <b>ALT</b> para invertir la dirección a la que van las cintas. + - Puedes apretar <b>ALT</b> para invertir la dirección a la que van las + cintas. - ¡La eficiencia es la clave! - - Mientras más lejos del HUB estés más complejas serán las formas que te encuentres. - - Las máquinas tienen una velocidad limitada, divídelas para una máxima eficiencia. + - Mientras más lejos del Centro estés más complejas serán las formas que te + encuentres. + - Las máquinas tienen una velocidad limitada, divídelas para una máxima + eficiencia. - Usa balanceadores para maximizar tu eficiencia. - - La organización es importante. Trate de no cruzar demasiado las cintas transportadoras. + - La organización es importante. Trate de no cruzar demasiado las cintas + transportadoras. - ¡Planea con anticipación, o será un gran caos! - - ¡No saques tus viejas fábricas! Las necesitararás para desbloquear nuevas mejoras. + - ¡No saques tus viejas fábricas! Las necesitararás para desbloquear nuevas + mejoras. - ¡Intenta superar el nivel 20 por tu cuenta antes de buscar ayuda! - No compliques las cosas, intenta mantenerlo simple y llegarás lejos. - - Puede que tengas que reutilizar las fábricas más tarde en el juego. Planea tus fábricas para que sean reutilizables. - - A veces puedes encontrar la forma que necesitas en el mapa sin la necesidad de usar apiladores. + - Puede que tengas que reutilizar las fábricas más tarde en el juego. Planea + tus fábricas para que sean reutilizables. + - A veces puedes encontrar la forma que necesitas en el mapa sin la + necesidad de usar apiladores. - Los molinillos no pueden aparecer enteros naturalmente. - Colorear las formas antes de cortarlas para una máxima eficiencia. - - Con los módulos, el espacio es sólo una percepción; una preocupación para los mortales. + - Con los módulos, el espacio es sólo una percepción; una preocupación para + los mortales. - Haz una fábrica para planos separada. Son importantes para los módulos. - - Echa un vistazo más de cerca al mezclador de colores, y tus preguntas serán respondidas. + - Echa un vistazo más de cerca al mezclador de colores, y tus preguntas + serán respondidas. - Usa <b>CTRL</b> + Click izquierdo para seleccionar un área. - - Construir demasiado cerca del HUB puede interponerse en el camino de proyectos a futuro. - - El icono del alfiler junto a cada forma de la lista de mejoras lo fija a la pantalla. + - Construir demasiado cerca del Centro puede interponerse en el camino de + proyectos a futuro. + - El icono del alfiler junto a cada forma de la lista de mejoras lo fija a + la pantalla. - ¡Mezcla todos los colores primarios para obtener blanco! - Tienes un mapa infinito, no te agobies tu fábrica, ¡expande! - ¡Prueba también Factorio! Es mi juego favorito. - - ¡El cortador cuádruple corta en el sentido de las agujas del reloj empezando por la parte superior derecha! + - ¡El cortador cuádruple corta en el sentido de las agujas del reloj + empezando por la parte superior derecha! - ¡Puedes descargar tus archivos de guardado en el menú principal! - - ¡Este juego tiene un montón de atajos útiles! Asegúrate de revisar la página de ajustes. + - ¡Este juego tiene un montón de atajos útiles! Asegúrate de revisar la + página de ajustes. - Este juego tiene muchos ajustes, ¡asegúrate de revisarlos! - - ¡El marcador de tu HUB tiene una pequeña brújula para indicar su dirección! - - Para despejar las cintas transportadoras, corta el área y luego pégala en el mismo lugar. + - ¡El marcador de tu Centro tiene una pequeña brújula para indicar su + dirección! + - Para despejar las cintas transportadoras, corta el área y luego pégala en + el mismo lugar. - Presiona F4 para mostrar tu FPS y Tick Rate. - - Presiona F4 dos veces para mostrar las coordenadas de tu ratón y de la cámara. + - Presiona F4 dos veces para mostrar las coordenadas de tu ratón y de la + cámara. - Puedes hacer clic en una forma fijada en el lado izquierdo para desfijarla. +puzzleMenu: + play: Jugar + edit: Editar + title: Puzles + createPuzzle: Crear Puzle + loadPuzzle: Cargar + reviewPuzzle: Revisar y Publicar + validatingPuzzle: Validando Puzle + submittingPuzzle: Enviando Puzzle + noPuzzles: Ahora mismo no hay puzles en esta sección. + categories: + levels: Niveles + new: Nuevos + top-rated: Los mejor valorados + mine: Mios + easy: Fáciles + hard: Difíciles + completed: Completados + medium: Medios + official: Oficiales + trending: Tendencias de hoy + trending-weekly: Tendencias de la semana + categories: Categorías + difficulties: Por dificultad + account: Mis puzles + search: Buscar + validation: + title: Puzle no válido + noProducers: Por favor, ¡Pon un Productor de una sola pieza! + noGoalAcceptors: Por favor, ¡Pon un Aceptador de objetivos! + goalAcceptorNoItem: Uno o más aceptadores de objetivos no tienen asignado un + elemento. Transporta una forma hacia ellos para poner un objetivo. + goalAcceptorRateNotMet: Uno o más aceptadores de objetivos no están recibiendo + suficientes elementos. Asegúrate de que los indicadores están verdes + para todos los aceptadores. + buildingOutOfBounds: Uno o más edificios están fuera del área en la que puedes + construir. Aumenta el área o quítalos. + autoComplete: ¡Tu puzle se completa solo! Asegúrate de que tus productores de un + solo elemento no están conectados directamente a tus aceptadores de + objetivos. + difficulties: + easy: Fácil + medium: Medio + hard: Dificil + unknown: Unrated + dlcHint: ¿Ya compraste el DLC? Asegurate de tenerlo activado haciendo click + derecho a shapez.io en tu biblioteca, selecionando propiedades > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Estás haciendo tus acciones con demasiada frecuencia. Por favor, + espera un poco. + invalid-api-key: No pudimos conectar con el servidor, por favor intenta + actualizar/reiniciar el juego (Key de API Inválida). + unauthorized: No pudimos conectar con el servidor, por favor intenta + actualizar/reiniciar el juego (Sin Autorización). + bad-token: No pudimos conectar con el servidor, por favor intenta + actualizar/reiniciar el juego (Mal Token). + bad-id: El identificador del puzle no es válido. + not-found: No pudimos encontrar ese puzle. + bad-category: No pudimos encontar esa categoría. + bad-short-key: La clave que nos diste no es válida. + profane-title: El título de tu puzle contiene lenguaje profano. + bad-title-too-many-spaces: El título de tu puzle es demasiado breve. + bad-shape-key-in-emitter: Un productor de un solo elemento tiene un elemento no válido. + bad-shape-key-in-goal: Un aceptador de objetivos tiene un elemento no válido. + no-emitters: Tu puzle no contiene ningún productor de un solo item. + no-goals: Tu puzle no contiene ningún aceptador de objetivos. + short-key-already-taken: Esta clave ya está siendo usada, por favor usa otra. + can-not-report-your-own-puzzle: No pudes reportar tu propio puzle. + bad-payload: La petición contiene datos no válidos. + bad-building-placement: Tu puzle contiene edificios en posiciones no válidas. + timeout: El tiempo para la solicitud ha expirado. + too-many-likes-already: El puzle ha recibido demasiados me gusta ¡Si todavía + quieres eliminarlo, por favor contacta a support@shapez.io! (Solo + inglés) + no-permission: No tienes los permisos necesarios para llevar a cabo esta acción. diff --git a/translations/base-fi.yaml b/translations/base-fi.yaml index 42d73425..59d4ad38 100644 --- a/translations/base-fi.yaml +++ b/translations/base-fi.yaml @@ -4,48 +4,24 @@ steamPage: loputtomassa maailmassa. discordLinkShort: Virallinen Discord intro: >- - Shapez.io on rento peli, jossa sinun täytyy rakentaa tehtaita geometristen muotojen - automatisoituun tuotantoon. + Shapez.io on rento peli, jossa sinun täytyy rakentaa tehtaita + geometristen muotojen automatisoituun tuotantoon. Kun taso nousee, muodot tulevat entistä vaikeammiksi ja sinun täytyy laajentua loputtomassa kartassa. - Ja jos tämä ei ollut tarpeeksi, niin sinun täytyy tuottaa eksponentiaalisesti enemmän täyttääksesi tarpeet - - ainut asia mikä auttaa on skaalautuminen! + Ja jos tämä ei ollut tarpeeksi, niin sinun täytyy tuottaa eksponentiaalisesti enemmän täyttääksesi tarpeet - ainut asia mikä auttaa on skaalautuminen! Vaikka alussa vain prosessoit muotoja, myöhemmin niitä pitää myös maalata - tätä varten sinun täytyy kerätä ja sekoittaa värejä Pelin ostaminen Steamista antaa sinulle pääsyn pelin täysversioon, mutta voit myös pelata kokeiluversiota ensin sivuillamme shapez.io ja päättää myöhemmin! - title_advantages: Täysversion hyödyt - advantages: - - <b>12 uutta tasoa</b> nostaen tasojen määrän 26 tasoon! - - <b>18 uutta laitetta</b> täysin automatisoidulle tehtaalle! - - <b>20 päivitystasoa</b> monelle hauskalle pelitunnille! - - <b>Johdot -päivitys</b> tuo täysin uuden ulottuvuuden! - - <b>Tumma teema</b>! - - Rajattomat tallennukset - - Rajattomat merkit - - Tue minua! ❤️ - title_future: Suunniteltu sisältö - planned: - - Pohjapiirustuskirjasto (Vain täysversiossa) - - Steam Achievements - - Palapelitila - - Minikartta - - Modit - - Hiekkalaatikkotila - - ... ja paljon muuta! - title_open_source: Tämä peli on avointa lähdekoodia! - title_links: Linkit - links: - discord: Virallinen Discord - roadmap: Tiekartta - subreddit: Subreddit - source_code: Lähdekoodi (GitHub) - translate: Auta kääntämään - text_open_source: >- - Kuka tahansa voi osallistua. Olen aktiivisesti mukana yhteisössä ja - yritän tarkistaa kaikki ehdotukset ja ottaa palautteen huomioon missä mahdollista. - Muista tarkistaa Trello -lautani, jossa löytyy koko tiekartta! + what_others_say: Muiden mielipiteitä shapez.io:sta + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Ladataan error: Virhe @@ -54,7 +30,7 @@ global: suffix: thousands: k millions: M - billions: B + billions: G trillions: T infinite: ∞ time: @@ -77,6 +53,7 @@ global: escape: ESC shift: SHIFT space: VÄLILYÖNTI + loggingIn: Logging in demoBanners: title: Demoversio intro: Hanki pelin täysversio avataksesi kaikki ominaisuudet! @@ -96,6 +73,12 @@ mainMenu: savegameLevel: Taso <x> savegameLevelUnknown: Tuntematon taso savegameUnnamed: Nimetön + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -109,6 +92,9 @@ dialogs: viewUpdate: Näytä päivitys showUpgrades: Näytä päivitykset showKeybindings: Näytä pikanäppäimet + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Tuontivirhe text: "Tallennuksen tuonti epäonnistui:" @@ -120,19 +106,18 @@ dialogs: text: "Tallennuksen lataus epäonnistui:" confirmSavegameDelete: title: Varmista poisto - text: Oletko varma, että haluat poistaa valitun pelin?<br><br> - '<savegameName>' tasossa <savegameLevel><br><br> Tätä toimintoa ei - voi peruuttaa! + text: Oletko varma, että haluat poistaa valitun pelin?<br><br> '<savegameName>' + tasossa <savegameLevel><br><br> Tätä toimintoa ei voi peruuttaa! savegameDeletionError: title: Poisto epäonnistui text: "Tallennuksen poisto epäonnistui:" restartRequired: title: Uudelleenkäynnistys vaaditaan - text: "Käynnistä peli uudelleen ottaaksesi asetukset käyttöön." + text: Käynnistä peli uudelleen ottaaksesi asetukset käyttöön. editKeybinding: title: Vaihda pikanäppäin - desc: Paina näppäintä tai hiiren nappia, jonka haluat asettaa tai paina - escape peruuttaaksesi. + desc: Paina näppäintä tai hiiren nappia, jonka haluat asettaa tai paina escape + peruuttaaksesi. resetKeybindingsConfirmation: title: Nollaa pikanäppäimet desc: Tämä nollaa kaikki pikanäppäimet oletusarvoihin. Vahvista. @@ -157,12 +142,12 @@ dialogs: päivitysikkunan näytön oikeasta yläkulmasta. massDeleteConfirm: title: Vahvista poisto - desc: Olet poistamassa paljon rakennuksia (<count> tarkalleen)! Oletko varma, että - haluat jatkaa? + desc: Olet poistamassa paljon rakennuksia (<count> tarkalleen)! Oletko varma, + että haluat jatkaa? massCutConfirm: title: Vahvista leikkaus - desc: Olet leikkaamassa paljon rakennuksia (<count> tarkalleen)! Oletko varma, että - haluat jatkaa? + desc: Olet leikkaamassa paljon rakennuksia (<count> tarkalleen)! Oletko varma, + että haluat jatkaa? blueprintsNotUnlocked: title: Ei vielä avattu desc: Suorita taso 12 avataksesi piirustukset! @@ -172,13 +157,13 @@ dialogs: rakentamisesta helpompaa. Tässä on muutama, mutta <strong>katso kaikki pikanäppäimet</strong>!<br><br> <code class='keybinding'>CTRL</code> + Raahaus: Valitse alue.<br> <code - class='keybinding'>SHIFT</code>: Pidä pohjassa sijoittaaksesi - useita samoja rakennuksia.<br> <code class='keybinding'>ALT</code>: - Käännä sijoitettavien kuljettimien suunta.<br>" + class='keybinding'>SHIFT</code>: Pidä pohjassa sijoittaaksesi useita + samoja rakennuksia.<br> <code class='keybinding'>ALT</code>: Käännä + sijoitettavien kuljettimien suunta.<br>" createMarker: title: Uusi merkki - desc: Anna merkille kuvaava nimi. Voit myös liittää <strong>lyhyen koodin</strong> - muodosta. (Jonka voit luoda <link>täällä</link>.) + desc: Anna merkille kuvaava nimi. Voit myös liittää <strong>lyhyen + koodin</strong> muodosta. (Jonka voit luoda <link>täällä</link>.) titleEdit: Muokkaa merkkiä markerDemoLimit: desc: Voit tehdä vain kaksi mukautettua merkkiä demoversiossa. Hanki täysversio @@ -193,9 +178,9 @@ dialogs: leikata sen? editSignal: title: Aseta signaali - descItems: "Valitse esivalmisteltu muoto" - descShortKey: ... tai käytä muodon <strong>pikanäppäintä</strong> - (Jonka voit luoda <link>täällä</link>) + descItems: Valitse esivalmisteltu muoto + descShortKey: ... tai käytä muodon <strong>pikanäppäintä</strong> (Jonka voit + luoda <link>täällä</link>) renameSavegame: title: Nimeä tallennus uudelleen desc: Voit nimetä tallennuksesi uudelleen täällä. @@ -205,6 +190,70 @@ dialogs: tutorialVideoAvailableForeignLanguage: title: Ohjevideo saatavilla desc: Tästä tasosta on saatavilla ohjevideo! Haluaisitko katsoa sen? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Liiku @@ -220,12 +269,13 @@ ingame: delete: Poista pasteLastBlueprint: Liitä viimeisin piirustus lockBeltDirection: Ota kuljettimen suunnittelija käyttöön - plannerSwitchSide: Käännä suunnittelijan puoli + plannerSwitchSide: Vaihda suunnittelijan puolta cutSelection: Leikkaa copySelection: Kopioi clearSelection: Tyhjennä valinta pipette: Pipetti switchLayers: Vaihda tasoa + clearBelts: Clear belts colors: red: Punainen green: Vihreä @@ -315,27 +365,29 @@ ingame: laittaaksesi useampia poimijoita ja käytä <strong>R</strong> kääntääksesi niitä." 2_1_place_cutter: "Nyt aseta <strong>Leikkuri</strong> leikataksesi ympyrä - puoliksi!<br><br> PS: Leikkuri aina leikkaa <strong>ylhäältä alaspäin</strong> - riippumatta sen asennosta." + puoliksi!<br><br> PS: Leikkuri aina leikkaa <strong>ylhäältä + alaspäin</strong> riippumatta sen asennosta." 2_2_place_trash: Leikkuri voi <strong>tukkeutua</strong>!<br><br> Käytä - <strong>roskakoria</strong> hävittääksesi (vielä!) tarpeeton jäte. + <strong>roskakoria</strong> hävittääksesi (vielä!) tarpeeton + jäte. 2_3_more_cutters: "Hienoa! Lisää <strong>kaksi leikkuria</strong> nopeuttaaksesi - hidasta prosessia!<br><br> PS: Käytä <strong>pikanäppäimiä 0-9</strong> - valitaksesi rakennuksen nopeammin!" - 3_1_rectangles: "Poimitaanpa nyt neliöitä! <strong>Rakenna 4 - poimijaa</strong> ja yhdistä ne keskusrakennukseen.<br><br> PS: - Pidä <strong>SHIFT</strong> painettuna, kun raahaat kuljetinta + hidasta prosessia!<br><br> PS: Käytä <strong>pikanäppäimiä + 0-9</strong> valitaksesi rakennuksen nopeammin!" + 3_1_rectangles: "Poimitaanpa nyt neliöitä! <strong>Rakenna 4 poimijaa</strong> + ja yhdistä ne keskusrakennukseen.<br><br> PS: Pidä + <strong>SHIFT</strong> painettuna, kun raahaat kuljetinta aktivoidaksesi kuljetinsuunnittelijan!" 21_1_place_quad_painter: Aseta <strong>nelimaalain</strong> ja hanki <strong>ympyröitä</strong>, <strong>valkoista</strong> ja <strong>punaista</strong> väriä! 21_2_switch_to_wires: Vaihda Johdot -tasolle painamalla - <strong>E</strong>!<br><br> Sitten <strong>yhdistä kaikki neljä tuloa</strong> maalaimeen johdoilla! - 21_3_place_button: MahtaVATA! Aseta nyt <strong>kytkin</strong> ja yhdistä - se johdoilla! + <strong>E</strong>!<br><br> Sitten <strong>yhdistä kaikki neljä + tuloa</strong> maalaimeen johdoilla! + 21_3_place_button: MahtaVATA! Aseta nyt <strong>kytkin</strong> ja yhdistä se + johdoilla! 21_4_press_button: "Paina kytkintä <strong>lähettääksesi tosi- - signaalin</strong> ja aktivoidaksesi maalaimen.<br><br> PS: Kaikkia - tuloja ei tarvitse kytkeä! Kokeile vaikka vain kahta." + signaalin</strong> ja aktivoidaksesi maalaimen.<br><br> PS: + Kaikkia tuloja ei tarvitse kytkeä! Kokeile vaikka vain kahta." connectedMiners: one_miner: 1 poimija n_miners: <amount> poimijaa @@ -354,9 +406,6 @@ ingame: buildings: title: 18 Uutta laitetta desc: Automatisoi tehtaasi täysin! - savegames: - title: ∞ Tallennukset - desc: Niin paljon kuin sielusi kaipaa! upgrades: title: ∞ päivitystasoa desc: Kokeiluversiossa on vain viisi! @@ -372,6 +421,50 @@ ingame: support: title: Tue minua desc: Kehitän peliä vapaa-ajallani! + achievements: + title: Saavutukset + desc: Metsästä kaikki! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Kuljettimet, jakelijat & tunnelit @@ -401,22 +494,25 @@ buildings: description: Sallii sähkönkuljetuksen second: name: Johto - description: Siirtää signaaleja, jotka voivat olla muotoja, värejä, taikka binääriarvoja (1 / 0). - Eriväriset johdot eivät yhdisty toisiinsa. + description: Siirtää signaaleja, jotka voivat olla muotoja, värejä, taikka + binääriarvoja (1 / 0). Eriväriset johdot eivät yhdisty + toisiinsa. miner: default: name: Poimija description: Laita muodon tai värin päälle poimiaksesi sitä. chainable: name: Poimija (Sarja) - description: Laita muodon tai värin päälle poimiaksesi sitä. Voidaan kytkeä sarjaan. + description: Laita muodon tai värin päälle poimiaksesi sitä. Voidaan kytkeä + sarjaan. underground_belt: default: name: Tunneli description: Sallii resurssien kuljetuksen laitteiden ja kuljetinten alta. tier2: name: Tunneli taso II - description: Sallii resurssien kuljetuksen laitteiden ja kuljetinten alta pidemmältä matkalta. + description: Sallii resurssien kuljetuksen laitteiden ja kuljetinten alta + pidemmältä matkalta. cutter: default: name: Leikkuri @@ -462,8 +558,8 @@ buildings: sisääntulosta tulevalla värillä. quad: name: Maalain (neljännes) - description: Maalaa jokaisen neljänneksen erikseen. Vain ruudut - joissa <strong>signaali on tosi</strong> johtotasolla maalataan. + description: Maalaa jokaisen neljänneksen erikseen. Vain ruudut joissa + <strong>signaali on tosi</strong> johtotasolla maalataan. trash: default: name: Roskakori @@ -471,24 +567,25 @@ buildings: balancer: default: name: Tasaaja - description: Monikäyttöinen - Jakaa sisääntulot tasaisesti kaikkiin ulostuloihin. + description: Monikäyttöinen - Jakaa sisääntulot tasaisesti kaikkiin + ulostuloihin. merger: - name: Yhdistäjä (compact) + name: Yhdistäjä (kompakti) description: Yhdistää kaksi kuljetinta yhteen. merger-inverse: - name: Yhdistäjä (compact) + name: Yhdistäjä (kompakti) description: Yhdistää kaksi kuljetinta yhteen. splitter: - name: Erottaja (compact) + name: Erottaja (kompakti) description: Erottaa kuljettimen kahteen kuljettimeen. splitter-inverse: - name: Erottaja (compact) + name: Erottaja (kompakti) description: Erottaa kuljettimen kahteen kuljettimeen. storage: default: name: Varasto - description: Varastoi ylijäämätavarat tiettyyn kapasiteettiin asti. Priorisoi vasemman ulostulon - ja voidaan käyttää ylivuotoporttina. + description: Varastoi ylijäämätavarat tiettyyn kapasiteettiin asti. Priorisoi + vasemman ulostulon ja voidaan käyttää ylivuotoporttina. wire_tunnel: default: name: Johdon ylitys @@ -496,29 +593,31 @@ buildings: constant_signal: default: name: Jatkuva signaali - description: Lähettää vakiosignaalin, joka voi olla muoto, väri, taikka binääriarvo (1 / 0). + description: Lähettää vakiosignaalin, joka voi olla muoto, väri, taikka + binääriarvo (1 / 0). lever: default: name: Kytkin - description: Voidaan kytkeä lähettämään binääriarvoa (1 / 0) johtotasolla, - jota voidaan sitten käyttää esimerkiksi tavarasuodattimen ohjaukseen. + description: Voidaan kytkeä lähettämään binääriarvoa (1 / 0) johtotasolla, jota + voidaan sitten käyttää esimerkiksi tavarasuodattimen ohjaukseen. logic_gate: default: name: AND portti - description: Lähettää totuusarvon "1", jos molemmat sisääntulot ovat totta. (Totuus tarkoittaa, - että muoto, väri tai binääriarvo on "1") + description: Lähettää totuusarvon "1", jos molemmat sisääntulot ovat totta. + (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") not: name: NOT portti - description: Lähettää totuusarvon "1", jos sisääntulot eivät ole totta. - (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") + description: Lähettää totuusarvon "1", jos sisääntulot eivät ole totta. (Totuus + tarkoittaa, että muoto, väri tai binääriarvo on "1") xor: name: XOR portti - description: Lähettää totuusarvon "1", jos yksi sisääntuloista on totta, mutta kaikki eivät. - (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") + description: Lähettää totuusarvon "1", jos yksi sisääntuloista on totta, mutta + kaikki eivät. (Totuus tarkoittaa, että muoto, väri tai + binääriarvo on "1") or: name: OR portti - description: Lähettää totuusarvon "1", jos yksi sisääntuloista on totta. - (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") + description: Lähettää totuusarvon "1", jos yksi sisääntuloista on totta. (Totuus + tarkoittaa, että muoto, väri tai binääriarvo on "1") transistor: default: name: Transistori @@ -531,13 +630,13 @@ buildings: filter: default: name: Suodatin - description: Yhdistä signaali reitittääksesi kaikki vastaavat tavarat ylös, - ja jäljelle jäävät vasemmalle. Voidaan ohjata myös binääriarvoilla. + description: Yhdistä signaali reitittääksesi kaikki vastaavat tavarat ylös, ja + jäljelle jäävät vasemmalle. Voidaan ohjata myös binääriarvoilla. display: default: name: Näyttö - description: Yhdistä signaali näyttääksesi sen näytöllä. Voi olla muoto, - väri tai binääriarvo. + description: Yhdistä signaali näyttääksesi sen näytöllä. Voi olla muoto, väri + tai binääriarvo. reader: default: name: Kuljetinanturi @@ -551,8 +650,8 @@ buildings: comparator: default: name: Vertain - description: Palauttaa totuusarvon "1", jos molemmat signaalit ovat täysin samat. - Voi verrata värejä, tavaroita ja binääriarvoja. + description: Palauttaa totuusarvon "1", jos molemmat signaalit ovat täysin + samat. Voi verrata värejä, tavaroita ja binääriarvoja. virtual_processor: default: name: Virtuaalileikkuri @@ -562,35 +661,49 @@ buildings: description: Käännä tavara virtuaalisesti, sekä myötäpäivään että vastapäivään. unstacker: name: Virtuaalierottaja - description: Erota ylin taso virtuaalisesti oikeaan ulostuloon ja jäljelle jäävät - vasempaan ulostuloon. + description: Erota ylin taso virtuaalisesti oikeaan ulostuloon ja jäljelle + jäävät vasempaan ulostuloon. stacker: name: Virtuaaliyhdistäjä description: Yhdistä oikea tavara virtuaalisesti vasempaan. painter: name: Virtuaalimaalain - description: Maalaa virtuaalisesti tavara alhaalta sisääntulosta oikean sisääntulon värillä. + description: Maalaa virtuaalisesti tavara alhaalta sisääntulosta oikean + sisääntulon värillä. item_producer: default: name: Signaaligeneraattori - description: Saatavilla vain hiekkalaatikkotilassa. Lähettää - johtotasolla annetun signaalin normaaliin tasoon. + description: Saatavilla vain hiekkalaatikkotilassa. Lähettää johtotasolla + annetun signaalin normaaliin tasoon. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Muotojen Leikkaus - desc: Avasit juuri <strong>leikkurin</strong>. Se leikkaa muotoja ylhäältä alaspäin - ja tuottaa muodon molemmat puoliskot. <strong>Jos käytät vain yhden puoliskon, tuhoa toinen - puolisko tai se jumittaa leikkurin!</strong> - Siksi sinulla on - <strong>roskakori</strong>, joka tuhoaa kaiken sinne laittamasi! + desc: Avasit <strong>Leikkurin</strong>, joka leikkaa muotoja ylhäältä alas + <strong>muodon suunnasta riippumatta</strong>!<br><br>muista + hankkiutua eroon jätteestä, tai muuten <strong>se tukkii ja + pysäyttää leikkurin</strong> - Siksi olen antanut sinulle + <strong>roskiksen</strong>, joka tuhoaa kaiken sinne laitetun! reward_rotater: title: Kääntö - desc: Avasit <strong>Kääntäjän</strong>! Se kääntää muotoja myötäpäivään 90 astetta. + desc: Avasit <strong>Kääntäjän</strong>! Se kääntää muotoja myötäpäivään 90 + astetta. reward_painter: title: Värjäys - desc: "Avasit <strong>Maalaimen</strong> - Poimi joitain värialueita - (Samoin kuin muotoja) ja yhdistä se muotoon maalaimen - avulla!<br><br>PS: Jos olet värisokea, asetuksissa on <strong> tila - värisokeille</strong>!" + desc: "Avasit <strong>Maalaimen</strong> - Poimi joitain värialueita (Samoin + kuin muotoja) ja yhdistä se muotoon maalaimen avulla!<br><br>PS: Jos + olet värisokea, asetuksissa on <strong> tila värisokeille</strong>!" reward_mixer: title: Värin Sekoitus desc: Avasit <strong>Värinsekoittajan</strong> - Yhdistä kaksi väriä @@ -617,14 +730,15 @@ storyRewards: <strong>painamalla 'T' vaihtaaksesi sen versioita</strong>! reward_miner_chainable: title: Sarjapoimija - desc: "Avasit juuri <strong>Sarjapoimijan</strong>! Se voi - <strong>siirtää resurssejaan</strong> muihin poimijoihin, joten - voit hankkia resursseja tehokkaammin!<br><br> PS: Vanha - poimija on nyt korvattu työkalupalkissa!" + desc: "Avasit juuri <strong>Sarjapoimijan</strong>! Se voi <strong>siirtää + resurssejaan</strong> muihin poimijoihin, joten voit hankkia + resursseja tehokkaammin!<br><br> PS: Vanha poimija on nyt korvattu + työkalupalkissa!" reward_underground_belt_tier_2: title: Tunneli Taso II - desc: Avasit uuden version <strong>Tunnelista</strong> - Siinä on <strong>pidempi - kantama</strong>, ja voit myös yhdistellä ja sovitella tunneleita! + desc: Avasit uuden version <strong>Tunnelista</strong> - Siinä on + <strong>pidempi kantama</strong>, ja voit myös yhdistellä ja + sovitella tunneleita! reward_cutter_quad: title: Neljännesleikkuri desc: Avasit version <strong>Leikkurista</strong> - Se sallii muotojen @@ -636,38 +750,40 @@ storyRewards: kerrallaan</strong> käyttäen vain yhden värin kahden sijaan! reward_storage: title: Varastopuskuri - desc: Olet avannut <strong>Varaston</strong> - Voit varastoida - resursseja tiettyyn rajaan saakka!<br><br> Priorisoi vasemman ulostulon - ja voidaan käyttää <strong> ylivuotoporttina</strong>! + desc: Olet avannut <strong>Varaston</strong> - Voit varastoida resursseja + tiettyyn rajaan saakka!<br><br> Priorisoi vasemman ulostulon ja + voidaan käyttää <strong> ylivuotoporttina</strong>! reward_freeplay: title: Vapaapeli - desc: Onnistuit! Avasit juuri <strong>vapaapelimuodon</strong>! - Muodot luodaan nyt <strong>satunnaisesti</strong><br><br> - Since the hub will require a <strong>throughput</strong> from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!<br><br> The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + desc: Onnistuit! Avasit juuri <strong>vapaapelimuodon</strong>! Muodot luodaan + nyt <strong>satunnaisesti</strong><br><br> Koska keskusrakennus + vaatii tietyn <strong>kuljetuskapasiteetin</strong> tästä eteenpäin, + suosittelen lämpimästi rakentamaan koneen, joka tuottaa vaaditun + muodon automaattisesti!<br><br> Keskusrakennus lähettää pyydetyn + muodon johtotasolle, joten sinun ei tarvitse kuin analysoida se ja + konfiguroida tehtaasi sen perusteella. reward_blueprints: title: Piirustukset desc: Nyt voit <strong>Kopioida ja Liittää</strong> paloja tehtaastasi! Valitse alue (pidä CTRL pohjassa ja raahaa hiirellä), ja paina 'C' kopioidaksesi piirrustuksen.<br><br>Sen liittäminen ei ole - <strong>ilmaista</strong>. Sinun täytyy tuottaa <strong>piirustusmuotoja</strong>, - jotta sinulla on varaa siihen! (Ne mitkä juuri toimitit). + <strong>ilmaista</strong>. Sinun täytyy tuottaa + <strong>piirustusmuotoja</strong>, jotta sinulla on varaa siihen! + (Ne mitkä juuri toimitit). no_reward: title: Seuraava taso - desc: "Et saanut palkintoa tältä tasolta, mutta seuraavalta tasolta saat! <br><br> PS: Parempi - olla tuhoamatta vanhoja tehtaita - Tarvitset <strong>kaikkia</strong> - muotoja myöhemmin <strong>avataksesi päivityksiä</strong>!" + desc: "Et saanut palkintoa tältä tasolta, mutta seuraavalta tasolta saat! + <br><br> PS: Parempi olla tuhoamatta vanhoja tehtaita - Tarvitset + <strong>kaikkia</strong> muotoja myöhemmin <strong>avataksesi + päivityksiä</strong>!" no_reward_freeplay: title: Seuraava taso desc: Onnittelut! Muuten, lisää sisältöä on suunniteltu täysversioon! reward_balancer: title: Tasaaja - desc: Monikäyttöinen <strong>tasaaja</strong> avattu - Voit rakentaa - sen avulla isompia tehtaita <strong>erottaen ja yhdistäen - tavaroita</strong> useille kuljettimille! + desc: Monikäyttöinen <strong>tasaaja</strong> avattu - Voit rakentaa sen avulla + isompia tehtaita <strong>erottaen ja yhdistäen tavaroita</strong> + useille kuljettimille! reward_merger: title: Kompakti Yhdistäjä desc: Avasit <strong>yhdistäjän</strong>, joka on versio @@ -675,51 +791,56 @@ storyRewards: reward_belt_reader: title: Kuljetinanturi desc: Olet avannut <strong>Kuljetinanturin</strong>! Voit mitata kuljettimen - tehokkuutta.<br><br>Ja odotahan vain, kunhan saat Johdot auki. Sitten tämä on kätevä! + tehokkuutta.<br><br>Ja odotahan vain, kunhan saat Johdot auki. + Sitten tämä on kätevä! reward_rotater_180: title: Kääntäjä (180°) - desc: Avasit juuri 180-asteen <strong>Kääntäjän</strong>! - Sillä voit - kääntää muotoa 180 astetta (Ylläripylläri! :D) + desc: Avasit juuri 180-asteen <strong>Kääntäjän</strong>! - Sillä voit kääntää + muotoa 180 astetta (Ylläripylläri! :D) reward_display: title: Näyttö desc: "Avasit juuri <strong>Näytön</strong> - Yhdistä signaali näyttöön - Johto-tasolla visualisoidaksesi sen<br><br> PS: Huomasitko, että kuljetinanturi ja varasto näyttävät viimeisimmän esineen? Yritäpä saada se näkyviin näytölle!" + Johto-tasolla visualisoidaksesi sen<br><br> PS: Huomasitko, että + kuljetinanturi ja varasto näyttävät viimeisimmän esineen? Yritäpä + saada se näkyviin näytölle!" reward_constant_signal: title: Jatkuva Signaali - desc: Avasit <strong>Jatkuvan Signaalin</strong> laitteen johtotasolla! - Tämä on hyödyllinen esimerkiksi yhdistettynä - <strong>tavarasuodattimeen.</strong><br><br> Jatkuva signaali voi lähettää esim. - <strong>muodon</strong>, <strong>värin</strong> tai <strong>binääriarvon</strong> (1 / 0). + desc: Avasit <strong>Jatkuvan Signaalin</strong> laitteen johtotasolla! Tämä on + hyödyllinen esimerkiksi yhdistettynä + <strong>tavarasuodattimeen.</strong><br><br> Jatkuva signaali voi + lähettää esim. <strong>muodon</strong>, <strong>värin</strong> tai + <strong>binääriarvon</strong> (1 / 0). reward_logic_gates: title: Logiikkaportit - desc: Avasit <strong>Logiikkaportit</strong> (heh,heh)! Niistä ei tarvitse innostua, - mutta ne ovat oikeasti tosi päheitä!<br><br> Logiikkaporteilla - voit suorittaa AND, OR, XOR ja NOT operaatioita.<br><br> Kaupanpäällisiksi sait - myös <strong>transistorin</strong>! + desc: Avasit <strong>Logiikkaportit</strong> (heh,heh)! Niistä ei tarvitse + innostua, mutta ne ovat oikeasti tosi päheitä!<br><br> + Logiikkaporteilla voit suorittaa AND, OR, XOR ja NOT + operaatioita.<br><br> Kaupanpäällisiksi sait myös + <strong>transistorin</strong>! reward_virtual_processing: title: Virtuaaliprosessointi - desc: Sait juuri hyvän setin uusia laitteita, joiden avulla - <strong>voit simuloida muotojen prosessointia</strong>!<br><br> Nyt voit + desc: Sait juuri hyvän setin uusia laitteita, joiden avulla <strong>voit + simuloida muotojen prosessointia</strong>!<br><br> Nyt voit simuloida leikkuria, kääntäjää, pinoajaa ja muita johtotasolla! Sinulla on nyt kolme vaihtoehtoa pelin jatkamiseen:<br><br> - Rakenna <strong>automatisoitu kone</strong> luodaksesi mikä tahansa - keskusrakennuksen vaatima muoto (Suosittelen kokeilemaan!).<br><br> - Rakenna - jotakin hienoa johdoilla.<br><br> - Jatka pelaamista + keskusrakennuksen vaatima muoto (Suosittelen kokeilemaan!).<br><br> + - Rakenna jotakin hienoa johdoilla.<br><br> - Jatka pelaamista tavallisesti.<br><br> Mitä valitsetkin, muista pitää hauskaa! reward_wires_painter_and_levers: title: Johdot & Nelimaalain - desc: "Avasit juuri <strong>Johtotason</strong>: Se on erillinen - taso tavallisen tason päällä ja sieltä löytyy useita uusia - mekaniikkoja!<br><br> Aluksi avasin sinulle <strong>Nelimaalaimen</strong> - - Yhdistä johtotasolla lokerot, joihin haluat maalia<br><br> - Vaihtaaksesi johtotasolle, paina <strong>E</strong>. <br><br> - PS: <strong>Aktivoi vinkit</strong> asetuksissa nähdäksesi Johdot-tutoriaalin!" + desc: "Avasit juuri <strong>Johtotason</strong>: Se on erillinen taso tavallisen + tason päällä ja sieltä löytyy useita uusia mekaniikkoja!<br><br> + Aluksi avasin sinulle <strong>Nelimaalaimen</strong> - Yhdistä + johtotasolla lokerot, joihin haluat maalia<br><br> Vaihtaaksesi + johtotasolle, paina <strong>E</strong>. <br><br> PS: <strong>Aktivoi + vinkit</strong> asetuksissa nähdäksesi Johdot-tutoriaalin!" reward_filter: title: Esinesuodatin - desc: Olet avannut <strong>Esinesuodattimen</strong>! Se lähettää esineet - joko ylös tai oikealle riippuen siitä vastaavatko ne - signaalia johtotasolla vai eivät.<br><br> Voit myös lähettää - binääriarvon (1 / 0) aktivoidaksesi tai sammuttaaksesi sen. + desc: Olet avannut <strong>Esinesuodattimen</strong>! Se lähettää esineet joko + ylös tai oikealle riippuen siitä vastaavatko ne signaalia + johtotasolla vai eivät.<br><br> Voit myös lähettää binääriarvon (1 / + 0) aktivoidaksesi tai sammuttaaksesi sen. reward_demo_end: title: Kokeiluversion loppu! desc: Olet läpäissyt kokeiluversion! @@ -739,7 +860,8 @@ settings: uiScale: title: Käyttöliittymän koko description: Muuttaa käyttöliittymän kokoa. Käyttöliittymä skaalataan silti - laitteen resoluution perusteella, mutta tämä asetus määrittää skaalauksen määrän. + laitteen resoluution perusteella, mutta tämä asetus määrittää + skaalauksen määrän. scales: super_small: Erittäin pieni small: Pieni @@ -782,12 +904,12 @@ settings: saattavat olla puutteellisia! enableColorBlindHelper: title: Värisokeatila - description: Ottaa käyttöön useita työkaluja, jotka helpottavat pelaamista - jos olet värisokea. + description: Ottaa käyttöön useita työkaluja, jotka helpottavat pelaamista jos + olet värisokea. fullscreen: title: Kokonäyttö - description: Peliä suositellaan pelattavaksi kokonäytön tilassa - parhaan kokemuksen saamiseksi. Saatavilla vain täysversiossa. + description: Peliä suositellaan pelattavaksi kokonäytön tilassa parhaan + kokemuksen saamiseksi. Saatavilla vain täysversiossa. soundsMuted: title: Mykistä äänet description: Jos käytössä, mykistää kaikki ääniefektit. @@ -826,16 +948,16 @@ settings: tekstin lukemisesta helpompaa. rotationByBuilding: title: Kiertäminen laitetyypin mukaan - description: Muistaa jokaisen laitetyypin viimeisimmän kiertoasetuksen. - Tämä voi olla mukavampi vaihtoehto jos sijoitat usein eri laitetyyppejä. + description: Muistaa jokaisen laitetyypin viimeisimmän kiertoasetuksen. Tämä voi + olla mukavampi vaihtoehto jos sijoitat usein eri laitetyyppejä. compactBuildingInfo: title: Kompaktit laitetiedot description: Lyhentää laitteiden tietolaatikoita näyttämällä vain niiden suhteet. Muuten laitteen kuvaus ja kuva näytetään. disableCutDeleteWarnings: title: Poista leikkaus/poisto -varoitukset - description: Poista varoitusikkunat, jotka ilmestyvät kun leikkaat/poistat enemmän - kuin 100 entiteettiä. + description: Poista varoitusikkunat, jotka ilmestyvät kun leikkaat/poistat + enemmän kuin 100 entiteettiä. soundVolume: title: Efektien äänenvoimakkuus description: Aseta ääniefektien äänenvoimakkuus @@ -845,13 +967,16 @@ settings: lowQualityMapResources: title: Alhaisen tason resurssit description: Yksinkertaistaa resurssikenttien ulkonäön suurennetussa näkymässä - suorituskyvyn parantamiseksi. Näyttää jopa siistimmältä, joten kannattaa kokeilla! + suorituskyvyn parantamiseksi. Näyttää jopa siistimmältä, joten + kannattaa kokeilla! disableTileGrid: title: Poista ruudukko - description: Poistaa ruudukon ja parantaa suorituskykyä. Pelialue näyttää myös siistimmältä! + description: Poistaa ruudukon ja parantaa suorituskykyä. Pelialue näyttää myös + siistimmältä! clearCursorOnDeleteWhilePlacing: title: Tyhjennä kursori oikalla klikillä - description: Oletuksena päällä. Tyhjentää kursorin klikattaessa oikealla kun laite on valittu asetettavaksi. + description: Oletuksena päällä. Tyhjentää kursorin klikattaessa oikealla kun + laite on valittu asetettavaksi. lowQualityTextures: title: Alhaisen tason tekstuurit (ruma) description: Käyttää alhaisen tason tekstuureja tehojen säästämiseksi. Tämä @@ -862,20 +987,30 @@ settings: reunat jokaiselle kimpaleelle näytetään. pickMinerOnPatch: title: Valitse poimija resurssikentässä - description: Oletuksena päällä. Valitsee poimijan jos käytät pipettiä resurssikentän päällä. + description: Oletuksena päällä. Valitsee poimijan jos käytät pipettiä + resurssikentän päällä. simplifiedBelts: title: Yksinkertaiset kuljettimet (ruma) - description: Ei näytä tavaroita kuljettimella, ellei hiiren osoitin ole sen päällä. Asetusta ei suositella, ellet todella tarvitse lisätehoja. + description: Ei näytä tavaroita kuljettimella, ellei hiiren osoitin ole sen + päällä. Asetusta ei suositella, ellet todella tarvitse + lisätehoja. enableMousePan: title: Ruudun liikuttaminen hiirellä - description: Liikuttaa ruutua siirrettäessä hiiri reunaan. Nopeus määritellään liikenopeuden asetuksissa. + description: Liikuttaa ruutua siirrettäessä hiiri reunaan. Nopeus määritellään + liikenopeuden asetuksissa. zoomToCursor: title: Suurenna kursoriin - description: Aktivoituna suurentaa näkymää hiiren osoittimen suuntaan. Muuten suurentaa ruudun keskelle. + description: Aktivoituna suurentaa näkymää hiiren osoittimen suuntaan. Muuten + suurentaa ruudun keskelle. mapResourcesScale: title: Kartan resurssien koko description: Määrittää muotojen koon kartalla (loitonnettaessa). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Pikanäppäimet hint: "Vinkki: Muista käyttää CTRL, SHIFT ja ALT! Ne ottavat käyttöön erilaisia @@ -925,7 +1060,7 @@ keybindings: pasteLastBlueprint: Liitä viimeisin piirustus cycleBuildings: Valitse rakennuksia lockBeltDirection: Ota kuljetinsuunnittelija käyttöön - switchDirectionLockSide: "Suunnittelija: Muuta sivua" + switchDirectionLockSide: "Suunnittelija: Vaihda sivua" massSelectStart: Pidä pohjassa ja raahaa aloittaaksesi massSelectSelectMultiple: Valitse useita alueita massSelectCopy: Kopioi alue @@ -949,18 +1084,28 @@ keybindings: comparator: Vertaa item_producer: Signaaligeneraattori (Hiekkalaattikko) copyWireValue: "Johdot: Kopioi arvo kursorin kohdalta" + rotateToUp: "Käännä: osoittaa ylös" + rotateToDown: "Käännä: osoittaa alas" + rotateToRight: "Käännä: osoittaa oikealle" + rotateToLeft: "Käännä: osoittaa vasemmalle" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: Tietoja tästä pelistä body: >- - Tämä peli on avointa lähdekoodia ja kehittäjä on <a - href="https://github.com/tobspr" target="_blank">Tobias Springer</a> - (tämä on minä).<br><br> + Tämä peli on avointa lähdekoodia ja <a href="https://github.com/tobspr" + target="_blank">Tobias Springer</a>in (siis minun) kehittämäni.<br><br> - Tämän pelin tekeminen ei olisi ollut mahdollista ilman suurta Discord-yhteisöä pelini ympärillä - Voisit liittyä <a href="<discordlink>" target="_blank">Discord palvelimelleni</a>!<br><br> + Jos haluat avustaa, käy katsomassa <a href="<githublink>" target="_blank">shapez.io GitHubissa</a>.<br><br> - Ääniraidan on tehnyt <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Hän on mahtava.<br><br> + Tämä peli ei olisi mahdollinen ilman pelieni ympärillä olevaa Discord-yhteisöä - Sinun todella kannattaisi liittyä <a href="<discordlink>" target="_blank">Discord serverillemme</a>!<br><br> - Lopuksi, isot kiitokset parhaalle kaverilleni <a href="https://github.com/niklas-dahl" target="_blank">Niklakselle</a> - Ilman meidän factorio istuntoja tätä peliä ei olisi koskaan olemassa. + Ääniraidan on tehnyt <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Hän on uskomattoman loistava.<br><br> + + Lopuksi valtavat kiitokset parhaalle ystävälleni <a href="https://github.com/niklas-dahl" target="_blank">Niklakselle</a> - Ilman Factorio-sessioitamme tätä peliä ei olisi olemassa. changelog: title: Muutosloki demo: @@ -977,7 +1122,8 @@ tips: - Älä rakenna liian lähelle keskusrakennusta tai olet pian pulassa! - Jos pinoaminen ei toimi, kokeile vaihtaa syöttöjä. - Voit vaihtaa kuljetinsuunnittelijan suuntaa painamalla <b>R</b>. - - <b>CTRL:n</b> painaminen antaa vetää kuljettimia ilman automaattisuuntausta. + - <b>CTRL:n</b> painaminen antaa vetää kuljettimia ilman + automaattisuuntausta. - Suhteet säilyvät samana, kunhan kaikki pivityset ovat samalla tasolla. - Sarjassa tekeminen on tehokkaampaa, kuin rinnan. - Rakennuksista avautuu lisää versioita myöhemmin pelissä! @@ -990,7 +1136,8 @@ tips: - Maksimitasolla 5 poimijaa täyttää yhden kuljettimen. - Älä unohda tunneleita! - Asioita ei tarvitse jakaa tasan parhaan tehokkuuden saavuttamiseksi. - - <b>SHIFTin</b>painaminen aktivoi kuljetinsuunnittelijan, joka helpottaa pitkien linjojen rakentamista. + - <b>SHIFTin</b>painaminen aktivoi kuljetinsuunnittelijan, joka helpottaa + pitkien linjojen rakentamista. - Leikkurit leikkaavat aina pystysuunnassa riippumatta niiden asemoinnista. - Sekoita kolmea väriä saadaksesi valkoista. - Varasto priorisoi ensimmäisen lähdön. @@ -999,14 +1146,16 @@ tips: - <b>ALTia</b> voit vaihtaa kuljetinten suuntaa. - Tehokkuus on keskeistä! - Muotokentät ovat monimutkaisempia kauempana keskusrakennuksesta. - - Koneiden nopeus on rajoitettu. Jaa töitä useammalle koneelle tehokkuuden maksimoimiseksi + - Koneiden nopeus on rajoitettu. Jaa töitä useammalle koneelle tehokkuuden + maksimoimiseksi - Käytä tasaajia tehokkuuden maksimoimiseksi. - Järjestys on tärkeää. Vältä liiallista kuljetinten risteämistä. - Suunnittele etukäteen tai jodut keskelle kaaosta! - Älä poista vanhoja tehtaitasi! Tarvitset niitä päivitysten avaamiseen. - Yritä läpäistä taso 20 itseksesi, ennen kuin etsit apuja! - Älä monimutkaista asioita. Yksinkertainen vie pitkälle. - - Saatat joutua käyttämään tehtaitasi uudelleen myöhemmin. Rakenna niistä kierrätettäviä. + - Saatat joutua käyttämään tehtaitasi uudelleen myöhemmin. Rakenna niistä + kierrätettäviä. - Joskus tarvitsemasi muoto löytyy suoraan kartalta, etkä tarvitse pinoajia. - Kokonaiset tuulimyllyt ja piikkipyörät eivät synny luonnollisesti. - Tehokkainta on maalata muodot ennen leikkausta. @@ -1014,17 +1163,104 @@ tips: - Tee erilliset mallitehtaat. Ne ovat tärkeitä modulaarisuudessa. - Katso tarkkaan värinsekoitinta ja kysymyksiisi vastataan. - <b>CTRL</b> + hiiren vasen nappi valitsee alueen. - - Liian lähelle keskusrakennusta rakennettu tehdas on tiellä myöhemmissä projekteissa. + - Liian lähelle keskusrakennusta rakennettu tehdas on tiellä myöhemmissä + projekteissa. - Nastaikoni päivityslistan muotojen vieressä kiinnittää muodon ruudulle. - Sekoita kaikkia päävärejä saadaksesi valkoista! - Kartta on ääretön. Älä rakenna tehtaitasi liian ahtaasti, laajenna! - Kokeile myös Factoriota! Se on lempipelini. - Nelileikkuri leikkaa myötäpäivään aloittaen yläoikealta! - Voit ladata tallennuksesi päävalikosta! - - Tässä pelissä on monia käteviä pikanäppäimiä. Muista tutustua asetussivuihin. + - Tässä pelissä on monia käteviä pikanäppäimiä. Muista tutustua + asetussivuihin. - Tässä pelissä on useita asetuksia. Tutustu niihin! - Keskusrakennuksen merkissä on pieni kompassi osoittamassa sen suuntaa! - Poistaaksesti kuljettimia leikkaa alue ja liitä se samaan kohtaan - Paina F4 nähdäksesi FPS laskurin ja virkistystaajuuden. - Press F4 kahdesti nähdäksesi hiiren ja kameran ruudun. - Klikkaa kiinnitetyn muodon vasemmalta puolelta irrottaaksesi sen. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index 6af2f86e..5377c45b 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -6,50 +6,23 @@ steamPage: intro: >- Vous aimez les jeux d’automatisation ? Ce jeu est pour vous ! - shapez.io est un jeu calme où vous devrez construire des usines pour produire automatiquement des formes géométriques. À mesure que le niveau augmente, les formes deviennent de plus en plus - complexes, et vous devrez vous étendre sur la carte infinie. + shapez.io est un jeu calme où vous devrez construire des usines pour produire automatiquement des formes géométriques. À mesure que le niveau augmente, les formes deviennent de plus en plus complexes, et vous devrez vous étendre sur la carte infinie. - Et en plus, vous devrez aussi produire de plus en plus pour satisfaire la demande. La seule solution est de construire en plus grand ! Au début vous ne ferez que découper les formes, mais - plus tard vous devrez les peindre — et pour ça vous devrez extraire et mélanger des couleurs ! + Et en plus, vous devrez aussi produire de plus en plus pour satisfaire la demande. La seule solution est de construire en plus grand ! Au début vous ne ferez que découper les formes, mais plus tard vous devrez les peindre — et pour ça vous devrez extraire et mélanger des couleurs ! En achetant le jeu sur Steam, vous aurez accès à la version complète, mais vous pouvez aussi jouer à une démo sur shapez.io et vous décider ensuite ! - title_advantages: Avantages de la version complète - advantages: - - <b>12 nouveaux niveaux</b> avec 26 niveaux en tout - - <b>18 nouveaux bâtiments</b> pour automatiser entièrement votre usine ! - - <b>20 niveaux d’amélioration</b> pour s’amuser pendant des heures ! - - <b>Les câbles</b> ouvrent une toute nouvelle dimension ! - - <b>Mode sombre</b> ! - - Sauvegardes illimitées - - Balises illimitées - - Me soutenir ! ❤️ - title_future: Prévu - planned: - - Bibliothèque de patrons - - Succès sur Steam - - Mode réflexion - - Mini-carte - - Mods - - Mode bac à sable - - …et bien plus ! - title_open_source: Ce jeu est open source ! - text_open_source: >- - Tout le monde peut contribuer. Je suis très impliqué dans la communauté - et j’essaie de lire toutes les suggestions et de prendre en compte vos - retours quand c’est possible. - - N’oubliez pas de consulter mon tableau Trello pour voir tout le plan de développement ! - title_links: Liens - links: - discord: Discord officiel - roadmap: Plan de développement - subreddit: Reddit - source_code: Code source (GitHub) - translate: Aidez à traduire + what_others_say: Ce que les gens pensent de Shapez.io + nothernlion_comment: Ce jeu est génial - Je passe un merveilleux moment à jouer, + et le temps s'est envolé. + notch_comment: Mince ! Je devrais vraiment me coucher, mais je crois que j'ai + trouvé comment faire un ordinateur dans Shapez.io + steam_review_comment: Ce jeu a volé ma vie et je ne veux pas la récupérer. Jeu + d'usine très cool qui ne me laissera pas arrêter de rendre mes lignes + plus efficaces. global: loading: Chargement error: Erreur - thousandsDivider: + thousandsDivider: "," decimalSeparator: "," suffix: thousands: k @@ -77,6 +50,7 @@ global: escape: ESC shift: MAJ space: ESPACE + loggingIn: Logging in demoBanners: title: Version de démo intro: Achetez la version complète pour débloquer toutes les fonctionnalités ! @@ -97,6 +71,12 @@ mainMenu: savegameLevel: Niveau <x> savegameLevelUnknown: Niveau inconnu savegameUnnamed: Sans titre + puzzleMode: Mode Puzzle + back: Retour + puzzleDlcText: Vous aimez compacter et optimiser vos usines ? Achetez le DLC sur + Steam dès maintenant pour encore plus d'amusement! + puzzleDlcWishlist: Ajoute à ta liste de souhaits maintenant ! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -110,6 +90,9 @@ dialogs: viewUpdate: Voir les mises à jour showUpgrades: Montrer les améliorations showKeybindings: Montrer les raccourcis + retry: Réessayer + continue: Continuer + playOffline: Jouer Hors-ligne importSavegameError: title: Erreur d’importation text: "Impossible d’importer votre sauvegarde :" @@ -153,9 +136,9 @@ dialogs: desc: "Voici les changements depuis votre dernière session de jeu :" upgradesIntroduction: title: Débloquer les améliorations - desc: Toutes les formes que vous produisez peuvent être utilisées pour débloquer - des améliorations — <strong>Ne détruisez pas vos anciennes - usines !</strong> L’onglet des améliorations se trouve dans le coin + desc: <strong>Ne détruisez pas vos anciennes usines !</strong> Toutes les formes + que vous produisez peuvent être utilisées pour débloquer des + améliorations. L’onglet des améliorations se trouve dans le coin supérieur droit de l’écran. massDeleteConfirm: title: Confirmer la suppression @@ -171,7 +154,7 @@ dialogs: la couper ? blueprintsNotUnlocked: title: Pas encore débloqué - desc: Terminez le niveau 12 pour avoir accès aux patrons ! + desc: Terminez le niveau 12 pour avoir accès aux plans ! keybindingsIntroduction: title: Raccourcis utiles desc: 'Le jeu a de nombreux raccourcis facilitant la construction de grandes @@ -210,6 +193,73 @@ dialogs: title: Tutoriel disponible desc: Il y a un tutoriel vidéo pour ce niveau, mais il n’est disponible qu’en anglais. Voulez-vous le regarder ? + editConstantProducer: + title: Définir l'objet + puzzleLoadFailed: + title: Le chargement du Puzzle à échoué + desc: "Malheuresement, le puzzle n'a pas pu être chargé :" + submitPuzzle: + title: Envoyer le Puzzle + descName: "Donnez un nom à votre puzzle:" + descIcon: "Veuillez entrer un raccourci de forme unique, qui sera affichée comme + icône de votre puzzle (Vous pouvez générer le raccourci d'une forme + <link>ici</link>, ou en choisir une parmi les formes suggérées + alétoirement ci-dessous):" + placeholderName: Titre du Puzzle + puzzleResizeBadBuildings: + title: Impossible de redimensionner + desc: Vous ne pouvez pas rétrécir la zone, car certains bâtiments seraient en + dehors de la zone + puzzleLoadError: + title: Mauvais Puzzle + desc: "Le chargement du puzzle a échoué:" + offlineMode: + title: Mode hors-ligne + desc: Nous n'avons pas pu atteindre les serveurs, donc le jeu doit être mis en + mode hors ligne. Veuillez vous assurez que vous disposez d'une + connexion Internet active. + puzzleDownloadError: + title: Erreur de téléchargment + desc: "Le téléchargement a échoué:" + puzzleSubmitError: + title: Erreur d'envoi + desc: "L'envoi a échoué:" + puzzleSubmitOk: + title: Puzzle envoyé + desc: Félicitations ! Votre puzzle a été envoyé et peut maintenant être joué. + Vous pouvez maintenant le retrouver dans la section "Mes Puzzles". + puzzleCreateOffline: + title: Mode Hors-ligne + desc: Puisque vous êtes hors ligne, vous ne pourrez pas enregistrer et/ou + publier votre puzzle. Souhaitez-vous toujours continuer ? + puzzlePlayRegularRecommendation: + title: Recommandation + desc: Je recommande <strong>fortement</strong> de jouer au jeu normal jusqu'au + niveau 12 avant d'essayer le Puzzle DLC, sinon vous risqez de + rencontrer des méchanismes pas encore introduits. Voulez-vous + toujours continuer ? + puzzleShare: + title: Code copié + desc: Le code du puzzle (<key>) a été copié dans ton presse-papiers ! Il peut + être entré dans le menu des puzzles pour accéder au puzzle. + puzzleReport: + title: Signaler le Puzzle + options: + profane: Profane + unsolvable: Irrésolvable + trolling: Troll + puzzleReportComplete: + title: Merci pour votre retour! + desc: Le puzzle a été marqué. + puzzleReportError: + title: Échec du signalement + desc: "Votre signalement n'a pas pu être effectué:" + puzzleLoadShortKey: + title: Entrer un code + desc: Entrer le code du puzzle pour le charger. + puzzleDelete: + title: Supprimer le puzzle ? + desc: Êtes-vous sûr de vouloir supprimer '<title>' ? Cela sera irréversible ! ingame: keybindingsOverlay: moveMap: Déplacer @@ -223,7 +273,7 @@ ingame: placeBuilding: Placer un bâtiment createMarker: Créer une balise delete: Supprimer - pasteLastBlueprint: Copier le dernier patron + pasteLastBlueprint: Copier le dernier plan lockBeltDirection: Utiliser le planificateur de convoyeurs plannerSwitchSide: Inverser la direction du planificateur cutSelection: Couper @@ -231,6 +281,7 @@ ingame: clearSelection: Effacer la sélection pipette: Pipette switchLayers: Changer de calque + clearBelts: Supprimer les rails colors: red: Rouge green: Vert @@ -248,8 +299,8 @@ ingame: speed: Vitesse range: Portée storage: Espace de stockage - oneItemPerSecond: 1 forme ⁄ s - itemsPerSecond: <x> formes ⁄ s + oneItemPerSecond: 1 objet ⁄ s + itemsPerSecond: <x> objets ⁄ s itemsPerSecondDouble: (×2) tiles: <x> cases levelCompleteNotification: @@ -259,8 +310,8 @@ ingame: buttonNextLevel: Niveau suivant notifications: newUpgrade: Une nouvelle amélioration est disponible ! - gameSaved: Votre partie a été sauvegardée. - freeplayLevelComplete: Niveau <level> complet ! + gameSaved: Votre partie a bien été sauvegardée. + freeplayLevelComplete: Niveau <level> terminé ! shop: title: Améliorations buttonUnlock: Améliorer @@ -270,14 +321,14 @@ ingame: title: Statistiques dataSources: stored: - title: Stocké + title: Stock description: Affiche le nombre de formes stockées dans votre bâtiment central. produced: - title: Produit + title: Production description: Affiche toutes les formes que votre usine produit, y compris les formes intermédiaires. delivered: - title: Livré + title: Arrivage description: Affiche les formes qui ont été livrées dans votre bâtiment central. noShapesProduced: Aucune forme produite pour le moment. shapesDisplayUnits: @@ -319,32 +370,35 @@ ingame: plus vite votre but.<br><br> Astuce : Gardez <strong>MAJ</strong> enfoncé pour placer plusieurs extracteurs, et utilisez <strong>R</strong> pour les faire pivoter." - 2_1_place_cutter: "Maintenant, placez un <strong>découpeur</strong> pour - couper les cercles en deux.<br><br> PS : Le découpeur coupe toujours - <strong>de haut en bas</strong> quelle que soit son orientation." + 2_1_place_cutter: "Maintenant, placez un <strong>découpeur</strong> pour couper + les cercles en deux.<br><br> PS : Le découpeur coupe toujours + <strong>de haut en bas</strong> quelle que soit son + orientation." 2_2_place_trash: Le découpeur peut se <strong>bloquer</strong> !<br><br> - Utilisez la <strong>poubelle</strong> pour vous débarrasser des déchets - dont vous n’avez pas (encore) besoin. + Utilisez la <strong>poubelle</strong> pour vous débarrasser des + déchets dont vous n’avez pas (encore) besoin. 2_3_more_cutters: "Bravo ! Maintenant ajoutez <strong>deux découpeurs de - plus</strong> pour accélérer le processus !<br><br> - PS : Utilisez les <strong>raccourcis clavier 0–9</strong> pour accéder - plus rapidement aux bâtiments." - 3_1_rectangles: "Maintenant, extrayez des rectangles.<strong>Construisez - quatre extracteurs</strong> et connectez-les au centre.<br><br> - PS : Gardez <strong>MAJ</strong> enfoncé en plaçant un convoyeur pour + plus</strong> pour accélérer le processus !<br><br> PS : + Utilisez les <strong>raccourcis clavier 0–9</strong> pour + accéder plus rapidement aux bâtiments." + 3_1_rectangles: "Maintenant, extrayez des rectangles.<strong>Construisez quatre + extracteurs</strong> et connectez-les au centre.<br><br> PS : + Gardez <strong>MAJ</strong> enfoncé en plaçant un convoyeur pour activer le planificateur." - 21_1_place_quad_painter: Placez un <strong>quadruple peintre</strong> et - connectez des <strong>cercles</strong> et des couleurs - <strong>blanche</strong> et <strong>rouge</strong> ! + 21_1_place_quad_painter: Placez une <strong>station de peinture + quadruple</strong> et connectez des <strong>cercles</strong> et + des couleurs <strong>blanche</strong> et + <strong>rouge</strong> ! 21_2_switch_to_wires: Basculez sur le calque de câblage en appuyant sur <strong>E</strong>.<br><br> Puis <strong>connectez les quatre - entrées</strong> du peintre avec des câbles ! - 21_3_place_button: Génial ! Maintenant, placez un - <strong>interrupteur</strong> et connectez-le avec des câbles ! - 21_4_press_button: "Appuyez sur le bouton pour qu’il émette un - <strong>signal vrai</strong> et active le peintre.<br><br> PS : Vous - n’êtes pas obligé de connecter toutes les entrées ! Essayez d’en brancher - seulement deux." + entrées</strong> de la station de peinture quadruple avec des + câbles ! + 21_3_place_button: Génial ! Maintenant, placez un <strong>interrupteur</strong> + et connectez-le avec des câbles ! + 21_4_press_button: "Appuyez sur le bouton pour qu’il émette un <strong>signal + vrai</strong> et active la station de peinture + quadruple.<br><br> PS : Vous n’êtes pas obligé de connecter + toutes les entrées ! Essayez d’en brancher seulement deux." connectedMiners: one_miner: 1 extracteur n_miners: <amount> extracteurs @@ -363,9 +417,6 @@ ingame: buildings: title: 18 nouveaux bâtiments desc: Automatisez entièrement votre usine ! - savegames: - title: Sauvegardes ∞ - desc: Autant que votre cœur le désire ! upgrades: title: ∞ niveaux d’amélioration desc: Cette version de démonstration n’en a que 5 ! @@ -381,6 +432,52 @@ ingame: support: title: Me soutenir desc: Je le développe pendant mon temps libre ! + achievements: + title: Succès + desc: Débloquez-les tous ! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Largeur + zoneHeight: Hauteur + trimZone: Optimiser la taille + clearItems: Supprimer les objets + share: Partager + report: Signaler + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Créateur de Puzzles + instructions: + - 1. Placez des <strong>Producteurs Constants</strong> pour fournir + des formes et des couleurs au joueur + - 2. Fabriquez une ou plusieurs formes que vous voulez que le joueur + fabrique plus tard et délivrez-la/les à un ou plusieurs + <strong>Récepteurs d'Objectif</strong> + - 3. Une fois qu'un Récépteur d'Objectif a reçu une forme pendant un + certain temps, il <strong>l'enregistre zn tant + qu'objectif</strong> que le joueur devra produire plus tard + (Indiqué par le <strong>badge vert</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Résolu ! + titleLike: "Cliquez sur le cœur si vous avez aimé le Puzzle:" + titleRating: À quel point avez-vous trouvé le puzzle diffcile ? + titleRatingDesc: Votre note m'aidera à vous faire de meilleures suggestions à l'avenir + continueBtn: Continuer à jouer + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Auteur + shortKey: Short Key + rating: Niveau de difficulté + averageDuration: Durée moyenne + completionRate: Taux de réussite shopUpgrades: belt: name: Convoyeurs, distributeurs et tunnels @@ -398,7 +495,7 @@ buildings: hub: deliver: Livrez toUnlock: pour débloquer - levelShortcut: NV + levelShortcut: Niv endOfDemo: Fin de la démo belt: default: @@ -419,9 +516,9 @@ buildings: description: Permet de faire passer des ressources sous les bâtiments et les convoyeurs. tier2: - name: Tunnel niveau II + name: Tunnel Niv II description: Permet de faire passer des ressources sous les bâtiments et les - convoyeurs. + convoyeurs deux fois plus loin qu'un tunnel simple. balancer: default: name: Répartiteur @@ -462,9 +559,9 @@ buildings: description: Tourne une forme de 180 degrés. stacker: default: - name: Combineur - description: Combine deux formes. Si elles ne peuvent pas être combinées, la - forme de droite est placée sur la forme de gauche. + name: Assembleur + description: Assemble les formes à l'entrée, de préférence sur la même couche. + Sinon, la forme de droite sera placée sur la forme de gauche mixer: default: name: Mélangeur de couleur @@ -472,20 +569,20 @@ buildings: couleurs. painter: default: - name: Peintre - description: Colorie entièrement la forme venant de gauche avec la couleur - entrant en haut. + name: Station de peinture + description: Peint entièrement la forme venant de gauche avec la couleur entrant + en haut. mirrored: - name: Peintre - description: Colorie entièrement la forme venant de gauche avec la couleur - entrant en bas. + name: Station de peinture + description: Peint entièrement la forme venant de gauche avec la couleur entrant + en bas. double: - name: Peintre (double) - description: Colorie les deux formes venant de gauche avec la couleur entrant en - haut. + name: Station de peinture (double) + description: Peint entièrement les deux formes venant de gauche avec la couleur + entrant en haut. quad: - name: Peintre (quadruple) - description: Colorie chaque quadrant d’une forme avec une couleur différente. + name: Station de peinture (quadruple) + description: Peint chaque quadrant d’une forme avec une couleur différente. Seules les entrées recevant un <strong>signal vrai</strong> sur le calque de câblage seront peintes ! trash: @@ -515,7 +612,7 @@ buildings: description: Permet de croiser deux câbles sans les connecter entre eux. constant_signal: default: - name: Constante + name: Générateur constant description: Émet un signal constant, qui peut être une forme, une couleur ou un booléen (1 / 0). lever: @@ -530,7 +627,7 @@ buildings: description: Émet un “1” booléen si les deux entrées sont vraies (une forme, couleur ou “1”). not: - name: Porte INVERSEUR + name: Porte NON description: Émet un “1” booléen si l’entrée n’est pas vraie (une forme, couleur ou “1”). xor: @@ -574,8 +671,8 @@ buildings: comparator: default: name: Comparateur - description: Émet un “1” booléen si les deux entrées sont exactement les mêmes. - Peut comparer des formes, des couleurs, et des booléens. + description: Émet “1” si les deux entrées sont exactement les mêmes, sinon émet + “0”. Peut comparer des formes, des couleurs, et des booléens. virtual_processor: default: name: Découpeur virtuel @@ -588,53 +685,67 @@ buildings: description: Renvoie la couche supérieure à droite, et les couches restantes à gauche. stacker: - name: Combineur virtuel - description: Combine virtuellement la forme de droite sur celle de gauche. + name: Assembleur virtuel + description: Assemble virtuellement la forme de droite sur celle de gauche. painter: - name: Peintre virtuel + name: Station de peinture virtuelle description: Peint virtuellement la forme du bas avec la couleur de droite. item_producer: default: name: Générateur d’objet description: Seulement disponible en mode bac à sable. Renvoie le signal du calque de câblage sur le calque normal. + constant_producer: + default: + name: Producteur Constabnt + description: Sort constamment une forme ou une couleur spécifiée. + goal_acceptor: + default: + name: Récepteur d'Objetcif + description: Délivrez des formes au récepteur d'objectif pour les définir comme + objectif. + block: + default: + name: Bloc + description: Permet de bloquer une case. storyRewards: reward_cutter_and_trash: title: Découpage de formes - desc: Vous avez débloqué le <strong>découpeur</strong>. Il coupe des formes en - deux <strong>de haut en bas</strong> quelle que soit son - orientation !<br><br> Assurez-vous de vous débarrasser des déchets, - sinon <strong>gare au blocage</strong>. À cet effet, je mets à votre - disposition la poubelle, qui détruit tout ce que vous y mettez ! + desc: Vous venez de déverrouiller le <strong>découpeur</strong>, qui coupe les + formes en deux de haut en bas <strong>indépendamment de son + orientation</strong>!<br><br>Assurez-vous de vous débarrasser des + déchets, ou sinon <strong>il se bouchera et se bloquera</strong> - À + cet effet, Je vous ai donné la <strong>poubelle</strong>, qui + détruit tout ce que vous mettez dedans ! reward_rotater: title: Rotation desc: Le <strong>pivoteur</strong> a été débloqué ! Il pivote les formes de 90 degrés vers la droite. reward_painter: - title: Peintre - desc: "Le <strong>peintre</strong> a été débloqué. Extrayez des pigments de - couleur (comme vous le faites avec les formes) et combinez-les avec - une forme dans un peintre pour les colorier !<br><br>PS : Si vous - êtes daltonien, il y a un <strong>mode daltonien</strong> - paramétrable dans les préférences !" + title: Peinture + desc: "La <strong>station de peinture</strong> a été débloquée. Extrayez des + pigments de couleur (comme vous le faites avec les formes) et + combinez-les avec une forme dans une station pour les peindre ! + <br><br>PS : Si vous êtes daltonien, il y a un <strong>mode + daltonien</strong> paramétrable dans les préférences !" reward_mixer: title: Mélangeur de couleurs desc: Le <strong>mélangeur</strong> a été débloqué. Combinez deux couleurs en utilisant <strong>la synthèse additive des couleurs</strong> avec ce bâtiment ! reward_stacker: - title: Combineur - desc: Vous pouvez maintenant combiner deux formes avec le - <strong>combineur</strong> ! Les deux entrées sont combinées et si + title: Assembleur + desc: Vous pouvez maintenant assemblées deux formes avec le + <strong>combineur</strong> ! Les deux entrées sont assemblées,si elles peuvent être mises l’une à côté de l’autre, elles sont - <strong>fusionnées</strong>. Sinon, la forme de droite est + <strong>fusionnées</strong>, sinon, la forme de droite est <strong>placée au-dessus</strong> de la forme de gauche. reward_balancer: title: Répartiteur - desc: Le <strong>répartiteur</strong> multifonctionnel a été débloqué. Il peut + desc: Le <strong>répartiteur</strong> multifonctionnel a été débloqué - Il peut être utilisé pour construire de plus grandes usines en - <strong>distribuant équitablement et rassemblant les formes</strong> - entre plusieurs convoyeurs !<br><br> + <strong>divisant et en rassemblant des objets</strong> sur plusieurs + convoyeurs ! reward_tunnel: title: Tunnel desc: Le <strong>tunnel</strong> a été débloqué. Vous pouvez maintenant faire @@ -659,12 +770,13 @@ storyRewards: reward_merger: title: Fusionneur compact desc: Vous avez débloqué le <strong>fusionneur</strong>, une variante du - <strong>répartiteur</strong>. Il accepte deux entrées et les fusionne en un - seul convoyeur ! + <strong>répartiteur</strong>. Il accepte deux entrées et les + fusionne en un seul convoyeur ! reward_splitter: title: Répartiteur compact - desc: Vous avez débloqué une variante compacte du <strong>répartiteur</strong> — - Il accepte une seule entrée et la divise en deux sorties ! + desc: You have unlocked a <strong>splitter</strong> variant of the + <strong>balancer</strong> - It accepts one input and splits them + into two! reward_belt_reader: title: Lecteur de débit desc: Vous avez débloqué le <strong>lecteur de débit</strong> ! Il vous permet @@ -676,39 +788,39 @@ storyRewards: permet de découper les formes en <strong>quatre parties</strong> plutôt que seulement deux ! reward_painter_double: - title: Double peintre - desc: Vous avez débloqué une variante du <strong>peintre</strong> — Elle - fonctionne comme le peintre de base, mais elle permet de traiter - <strong>deux formes à la fois</strong> en ne consommant qu’une - couleur au lieu de deux ! + title: Station de peinture double + desc: Vous avez débloqué une variante de la <strong>station de + peinture</strong> — Elle fonctionne comme la station de peinture de + base, mais elle permet de traiter <strong>deux formes à la + fois</strong> en ne consommant qu’une couleur au lieu de deux ! reward_storage: - title: Tampon de stockage + title: Stockage desc: Vous avez débloqué le bâtiment de <strong>stockage</strong>. Il permet de stocker des objets jusqu’à une certaine limite !<br><br> Il priorise la sortie gauche, vous pouvez donc aussi l’utiliser comme <strong>drain de débordement</strong> ! reward_blueprints: - title: Patrons + title: Plans desc: Vous pouvez maintenant <strong>copier et coller</strong> des parties de votre usine ! Sélectionnez une zone (Appuyez sur CTRL, et sélectionnez avec votre souris), et appuyez sur “C” pour la copier.<br><br> Coller n’est <strong>pas gratuit</strong>, vous - devez produire <strong>des formes de patrons</strong> pour vous le + devez produire <strong>des formes de plans</strong> pour vous le payer (les mêmes que celles que vous venez de livrer). reward_rotater_180: title: Retourneur desc: Vous avez débloqué le <strong>retourneur</strong> ! Il permet de faire pivoter une forme de 180 degrés (Surprise ! :D) reward_wires_painter_and_levers: - title: Câbles & quadruple peintre + title: Câbles & station de peinture quadruple desc: "Vous avez débloqué le <strong>calque de câblage</strong> : C’est un calque au-dessus du calque normal, qui introduit beaucoup de nouvelles mécaniques de jeu !<br><br> Pour commencer, je vous - débloque le <strong>quadruple peintre</strong>. Connectez les - entrées à peindre sur le calque de câblage.<br><br> Pour voir le - calque de câblage, appuyez sur <strong>E</strong>.<br><br>PS : Activez - les <strong>indices</strong> dans les paramètres pour voir un tutoriel - sur le câblage." + débloque la <strong>station de peinture quadruple</strong>. + Connectez les entrées à peindre sur le calque de câblage.<br><br> + Pour voir le calque de câblage, appuyez sur + <strong>E</strong>.<br><br>PS : Activez les <strong>indices</strong> + dans les paramètres pour voir un tutoriel sur le câblage." reward_filter: title: Filtre à objets desc: Vous avez débloqué le <strong>filtre à objets</strong> ! Il dirige les @@ -724,7 +836,7 @@ storyRewards: le stockage émettent le dernier objet vu ? Essayez de le montrer sur un écran !" reward_constant_signal: - title: Constante + title: Générateur constant desc: Vous avez débloqué l’émetteur de <strong>constante</strong> sur le calque de câblage ! Vous pouvez par exemple la connecter à des <strong>filtres à objets</strong>.<br><br> La constante peut émettre @@ -735,22 +847,21 @@ storyRewards: desc: "Vous avez débloqué les <strong>portes logiques</strong> ! Vous n’êtes pas obligé de trouver ça génial, mais en fait c’est super cool !<br><br> Avec ces portes, vous pouvez maintenant faire les opérations - booléennes ET, OU, OU-EXCLUSIF et INVERSEUR !<br><br> Et la cerise - sur le gâteau : je vous donne aussi le - <strong>transistor</strong> !" + booléennes ET, OU, OU-EXCLUSIF et NON !<br><br> Et la cerise sur le + gâteau : je vous donne aussi le <strong>transistor</strong> !" reward_virtual_processing: title: Traitement virtuel desc: Je viens de vous donner tout un tas de nouveaux bâtiments qui vous permettent de <strong>simuler le traitement des - formes</strong> !<br><br> Vous pouvez maintenant simuler un - découpeur, un pivoteur, un combineur et plus encore sur le calque de - câblage !<br><br> Avec ça, vous avez trois possibilités pour - continuer le jeu :<br><br> - Construire une <strong>machine - automatisée</strong> pour fabriquer n’importe quelle forme demandée - par le centre (je conseille d’essayer !).<br><br> - Construire - quelque chose de cool avec des câbles.<br><br> - Continuer à jouer - normalement.<br><br> Dans tous les cas, l’important c’est de - s’amuser ! + formes</strong>!<br><br> Vous pouvez maintenant simuler un + découpeur, un pivoteur, un assembleur et plus encore sur la couche + des fils ! Avec cela vous avez maintenant trois options pour + continuer le jeu:<br><br> - Construire une <strong>machine + automatique</strong> pour créer toute forme possible demandée par le + HUB (Je recommande d'essayer de le faire !).<br><br> - Construire + quelque chose de cool avec les fils.<br><br> - Continuer à jouer + normalement.<br><br> Quoi que vous choisissiez, n'oubliez pas de + vous amuser ! no_reward: title: Niveau suivant desc: "Ce niveau n’a pas de récompense mais le prochain, si !<br><br> PS : Ne @@ -943,10 +1054,17 @@ settings: déplacement. zoomToCursor: title: Zoomer vers le curseur - description: Si activé, zoome vers la position de la souris ; sinon, vers le centre de l’écran. + description: Si activé, zoome vers la position de la souris ; sinon, vers le + centre de l’écran. mapResourcesScale: title: Taille des ressources sur la carte - description: Contrôle la taille des formes sur la vue d’ensemble de la carte visible en dézoomant. + description: Contrôle la taille des formes sur la vue d’ensemble de la carte + visible en dézoomant. + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. + tickrateHz: <amount> Hz keybindings: title: Contrôles hint: "Astuce : N’oubliez pas d’utiliser CTRL, MAJ et ALT ! Ces touches activent @@ -986,9 +1104,9 @@ keybindings: miner: Extracteur cutter: Découpeur rotater: Pivoteur - stacker: Combineur + stacker: Assembleur mixer: Mélangeur de couleur - painter: Peintre + painter: Station de peinture trash: Poubelle storage: Stockage wire: Câble @@ -1009,7 +1127,7 @@ keybindings: rotateInverseModifier: "Variante : Pivote à gauche" cycleBuildingVariants: Alterner entre les variantes confirmMassDelete: Confirmer la suppression de la sélection - pasteLastBlueprint: Copier le dernier patron + pasteLastBlueprint: Copier le dernier plan cycleBuildings: Alterner entre les bâtiments lockBeltDirection: Utiliser le planificateur de convoyeurs switchDirectionLockSide: "Planificateur : changer de côté" @@ -1021,6 +1139,15 @@ keybindings: placementDisableAutoOrientation: Désactiver l’orientation automatique placeMultiple: Rester en mode placement placeInverse: Inverser l’orientation des convoyeurs + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Producteur Constant + goal_acceptor: Récepteur d'Objectif + block: Bloc + massSelectClear: Vider les convoyeurs + showShapeTooltip: Show shape output tooltip about: title: À propos de ce jeu body: >- @@ -1030,8 +1157,7 @@ about: Si vous souhaitez contribuer, allez voir <a href="<githublink>" target="_blank">shapez.io sur GitHub</a>.<br><br> - Ce jeu n’aurait pas pu être réalisé sans la précieuse communauté Discord autour de mes jeux — Vous devriez vraiment rejoindre le - <a href="<discordlink>" target="_blank">serveur Discord</a> !<br><br> + Ce jeu n’aurait pas pu être réalisé sans la précieuse communauté Discord autour de mes jeux — Vous devriez vraiment rejoindre le <a href="<discordlink>" target="_blank">serveur Discord</a> !<br><br> La bande son a été créée par <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> — Il est génial !<br><br> @@ -1047,7 +1173,7 @@ demo: exportingBase: Exporter une image de toute la base settingNotAvailable: Indisponible dans la démo. tips: - - Le centre n’importe quelle forme, pas seulement la forme actuelle ! + - Le centre accepte n’importe quelle forme, pas seulement la forme actuelle ! - Assurez-vous que vos usines soient modulaires, cela paiera ! - Ne construisez pas trop près du centre, ou ce sera un énorme chaos ! - Si l’empilement ne fonctionne pas, essayez d’échanger les entrées. @@ -1063,8 +1189,8 @@ tips: - La symétrie est la clé ! - Vous pouvez entrelacer différents niveaux de tunnels. - Essayez de construire des usines compactes, cela paiera ! - - Le peintre a une variante en miroir que vous pouvez sélectionner avec - <b>T</b> + - La station de peinture a une variante en miroir que vous pouvez + sélectionner avec <b>T</b> - Avoir les bons ratios de construction maximisera l’efficacité. - Au niveau maximum, 5 extracteurs rempliront un seul convoyeur. - N’oubliez pas les tunnels ! @@ -1076,8 +1202,7 @@ tips: orientation. - Pour obtenir du blanc, mélangez les trois couleurs. - Le stockage priorise la première sortie. - - Investissez du temps pour créer des patrons reproductibles, ça vaut le - coup ! + - Investissez du temps pour créer des plans reproductibles, ça vaut le coup ! - Maintenir <b>CTRL</b> permet de placer plusieurs bâtiments. - Vous pouvez maintenir <b>ALT</b> pour inverser la direction des convoyeurs placés. @@ -1101,7 +1226,7 @@ tips: - Colorez vos formes avant de les découper pour une efficacité maximale. - Avec les modules, l’espace n’est qu’une perception ; une préoccupation pour les hommes mortels. - - Créez une usine de patrons à part. Ils sont importants pour les modules. + - Créez une usine de plans à part. Ils sont importants pour les modules. - Regardez de plus près le mélangeur de couleur et vous aurez la réponse à vos questions. - Utilisez <b>CTRL</b> + clic pour sélectionner une zone. @@ -1124,3 +1249,91 @@ tips: - Appuyez sur F4 pour voir vos IPS et votre fréquence de rafraîchissement. - Appuyez deux fois sur F4 pour voir les coordonnées. - Cliquez sur une forme épinglée à gauche pour l’enlever. +puzzleMenu: + play: Jouer + edit: Éditer + title: Mode Puzzle + createPuzzle: Créer un Puzzle + loadPuzzle: Charger + reviewPuzzle: Revoir & Publier + validatingPuzzle: Validation du Puzzle + submittingPuzzle: Publication du Puzzle + noPuzzles: Il n'y a actuellement aucun puzzle dans cette section. + categories: + levels: Niveaux + new: Nouveau + top-rated: Les mieux notés + mine: Mes puzzles + easy: Facile + hard: Difficile + completed: Complété + medium: Medium + official: Officiel + trending: Trending today + trending-weekly: Trending weekly + categories: Catégories + difficulties: Par Difficulté + account: Mes Puzzles + search: Rechercher + validation: + title: Puzzle invalide + noProducers: Veuillez placer un producteur constant ! + noGoalAcceptors: Veuillez placer un accepteur d'objectif ! + goalAcceptorNoItem: Un ou plusieurs accepteurs d'objectif n'ont pas encore + attribué d'élément. Donnez-leur une forme pour fixer un objectif. + goalAcceptorRateNotMet: Un ou plusieurs accepteurs d'objectifs n'obtiennent pas + assez d'articles. Assurez-vous que les indicateurs sont verts pour + tous les accepteurs. + buildingOutOfBounds: Un ou plusieurs bâtiments se trouvent en dehors de la zone + constructible. Augmentez la surface ou supprimez-les. + autoComplete: Votre puzzle se complète automatiquement ! Veuillez vous assurer + que vos producteurs constants ne livrent pas directement à vos + accepteurs d'objectifs. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Vous effectuez vos actions trop fréquemment. Veuillez attendre un peu + s'il vous plait. + invalid-api-key: Échec de la communication avec le backend, veuillez essayer de + mettre à jour/redémarrer le jeu (clé Api invalide). + unauthorized: Échec de la communication avec le backend, veuillez essayer de + mettre à jour/redémarrer le jeu (non autorisé). + bad-token: Échec de la communication avec le backend, veuillez essayer de mettre + à jour/redémarrer le jeu (Mauvais jeton). + bad-id: Identifiant de puzzle non valide. + not-found: Le puzzle donné n'a pas pu être trouvé. + bad-category: La catégorie donnée n'a pas pu être trouvée. + bad-short-key: La clé courte donnée n'est pas valide. + profane-title: Le titre de votre puzzle contient des mots interdits. + bad-title-too-many-spaces: Le titre de votre puzzle est trop court. + bad-shape-key-in-emitter: Un producteur constant a un élément invalide. + bad-shape-key-in-goal: Un accepteur de but a un élément invalide. + no-emitters: Votre puzzle ne contient aucun producteur constant. + no-goals: Votre puzzle ne contient aucun accepteur de but. + short-key-already-taken: Cette clé courte est déjà prise, veuillez en utiliser une autre. + can-not-report-your-own-puzzle: Vous ne pouvez pas signaler votre propre puzzle. + bad-payload: La demande contient des données invalides. + bad-building-placement: Votre puzzle contient des bâtiments placés non valides. + timeout: La demande a expiré. + too-many-likes-already: The puzzle already got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-he.yaml b/translations/base-he.yaml new file mode 100644 index 00000000..426740e0 --- /dev/null +++ b/translations/base-he.yaml @@ -0,0 +1,1209 @@ +steamPage: + shortText: shapez.io הוא משחק בנוגע לבניית מפעלים אוטמטים ליצירה של צורת מסובכות + יותר ויותר במפה אין סופית. + discordLinkShort: דיסקורד רשמי + intro: >- + אתה אוהב משחקי אוטומציה? אתה במקום הנכון! + + shapez.io הוא משחק שלווה שבו אתה בונה מפעל בשביל ליצור צורות גאומטריות אוטומטית. ככל שמתקדמים השלבים, הצורות נהיות יותר ויותר מסובכות, ואתה צריך להפתח על המפה האין סופית. + + ואם זה לא היה מספיק, אתה צריך ליצור יותר ויותר צורות בשביל לספק את הדרישה - הדבר היחיד שיכול לעזור זה להגדיל את המפעל! בזמן שבהתחלה אתה רק צריך לערוך צורות, בהמשך אתה צריך לצבוע אותם בעזרת צבעים שאתה מערבב. + + קניית המשחק בsteam תתן לך גישה למשחק המלא, אבל אתה יכול לשחק משחק דמו בhttps://shapez.io/ ולהחליט אחר כך. + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. +global: + loading: טוען + error: שגיאה + thousandsDivider: "," + decimalSeparator: . + suffix: + thousands: k + millions: M + billions: B + trillions: T + infinite: ∞ + time: + oneSecondAgo: לפני שנייה אחת + xSecondsAgo: לפני <x> שניות + oneMinuteAgo: לפני דקה אחת + xMinutesAgo: לפני <x> דקות + oneHourAgo: לפני שעה אחת + xHoursAgo: לפני <x> שעות + oneDayAgo: לפני יום אחד + xDaysAgo: לפני <x> ימים + secondsShort: <seconds>s + minutesAndSecondsShort: <minutes>m <seconds>s + hoursAndMinutesShort: <hours>h <minutes>m + xMinutes: <x> דקות + keys: + tab: TAB + control: CTRL + alt: ALT + escape: ESC + shift: SHIFT + space: SPACE + loggingIn: Logging in +demoBanners: + title: גרסאת דמו + intro: תשיג את המשחק המלא כדי לפתוח את כל הפיצ'רים +mainMenu: + play: שחק + continue: המשך + newGame: משחק חדש + changelog: עדכונים + subreddit: רדיט + importSavegame: יבוא + openSourceHint: המשחק הזה הוא עם קוד פתוח! + discordLink: שרת הדסקורד הרשמי + helpTranslate: תעזור לתרגם! + madeBy: <author-link> :יוצר המשחק + browserWarning: מצטערים, אבל המשחק רק באיטיות על הדפדפן שלך! תשיג את הגרסא + להורדה או שתוריד גוגל לחוויה המלאה. + savegameLevel: שלב <x> + savegameLevelUnknown: שלב לא ידוע + savegameUnnamed: ללא שם + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc +dialogs: + buttons: + ok: אישור + delete: מחיקה + cancel: ביטול + later: מאוחר יותר + restart: פתיחה מחדש + reset: אפס + getStandalone: השג את הגרסא להורדה + deleteGame: אני יודע מה אני עושה + viewUpdate: צפה בעדכון + showUpgrades: הצג שדרוגים + showKeybindings: הצג מקשים + retry: Retry + continue: Continue + playOffline: Play Offline + importSavegameError: + title: שגיאה ביבוא + text: "לא הצליח ליבא את השמירה שלך:" + importSavegameSuccess: + title: המשחק יובא + text: ייבא את המשחק שלך בהצלחה. + gameLoadFailure: + title: השמיררה שבורה + text: לא הצליח לטעון את השמירה. + confirmSavegameDelete: + title: אימות המחיקה + text: אתה בטוח שאתה רוצה למחוק את השמירה הבאה?<br><br> '<savegameName>' בשלב + <savegameLevel><br><br> פעולה זו אינה הפיכה! + savegameDeletionError: + title: נכשל למחוק + text: "נכשל למחוק רת השמיקה:" + restartRequired: + title: איתחול נדרש + text: אתה צריך לסגור ולפתוח את המשחק כדי לישם הגדרה זו. + editKeybinding: + title: שינוי מקשים + desc: תלחץ על מקש או על כפתור בעכבר שאתה רוצה להשתמש, או escape בשביל לבטל. + resetKeybindingsConfirmation: + title: אפס את המקשים + desc: זה יחזיר את כל המקשים להגדרה המקורית. בבקשה תאמת. + keybindingsResetOk: + title: אפס את המקשים + desc: זה יחזיר את כל המקשים להגדרה המקורית! + featureRestriction: + title: גראת דמו + desc: ניסית להשתמש בפיצ'ר (<feature>) שהוא לא זמין בדמו. תשיג את הגרסה להורדה + בשביל החוויה המלאה! + oneSavegameLimit: + title: הגבלת שמירה + desc: אתה יכול לשמור רק שמירה אחת בכל זמן נתון בגרסת הדמו. אתה יכול למחוק את + האחד הנוכחי או להשיג את הגרסה להורדה! + updateSummary: + title: עדכון חדש! + desc: "כאן כל השינויים מאז ששיחקת לאחרונה:" + upgradesIntroduction: + title: נפתח השדרוגים + desc: כל הצורות שייצרת יכולים עכשיו לשמש אותך בשביל לפתוח שדרוגים - <strong>אל + תהרוס את המפעלים הישנים שלך!</strong> אתה יכול לגשת לשדרוגים בפינה + העליונה ימנית של המסך. + massDeleteConfirm: + title: אישור מחיקה + desc: אתה מוחק הרבה מבנים (<count> בשביל להיות מדוייק)! אתה בטוח שאתה רוצה לעשות + את זה? + massCutConfirm: + title: אישור הזזה + desc: אתה מזיז הרבה מבנים (<count> בשביל להיות מדוייק)! אתה בטוח שאתה רוצה לעשות + את זה? + massCutInsufficientConfirm: + title: איזור הזזה + desc: אתה לא תוכל להדביק את האיזור הזה, אתה בטוח שאתה רוצה לחתוך אותו? + blueprintsNotUnlocked: + title: עדיין לא נפתח + desc: תסיים את שלב 12 בשביל לפתוח תבניות + keybindingsIntroduction: + title: מקשים שימושיים + desc: "במשחק הזה ישנם המון מקשים בשביל להקל כל בניית מפעלים גדולים. הנה כמה מהם, + אבל כדאי לך <strong>להסתכל על הגדרות המקשים</strong>!<br><br> <code + class='keybinding'>CTRL</code> + לגרור את העכבר: לבחוק שטח.<br> + <code class='keybinding'>SHIFT</code>: החזק בשביל לבנות כמה מאותו + מבנה.<br> <code class='keybinding'>ALT</code>: הפוך כיוון של + המסוע.<br>" + createMarker: + title: סימון חדש + titleEdit: עריכת סימון + desc: תן לזה שם, אתה יכול גם לרשום <strong>קוד קצר</strong> של צורה (שאתה יכול + לייצר <link>כאן</link>) + editSignal: + title: קבע ערך + descItems: "תבחר מההבאים:" + descShortKey: ... או שתשתמש ב <strong>קוד קצר</strong> של צורה (שאתה יכול לייצר + <link>כאן</link>) + markerDemoLimit: + desc: אתה יכול ליצור רק שני סימונים בגרסאת הדמו. תשיג את הגרסה להורדה בשביל כמול + לא מוגבלת של סימונים! + exportScreenshotWarning: + title: יצוא צילום מסך + desc: אתה ביקשת לייצא את המפעל שלך כצילום מסך. בבקשה תהיה מודע שזה יכול להיות די + איטי למפעלים גדולים ויכול להיות שזה יקריס לך את המשחק! + renameSavegame: + title: שנה שם לשמירה + desc: אתה יכול לשנות את שם השמירה כאן. + tutorialVideoAvailable: + title: הדרכה זמינה + desc: יש סרטון הדרכה זמין לשלב הזה! תרצה לצפות בזה? + tutorialVideoAvailableForeignLanguage: + title: הדרכה זמינה + desc: יש סרטון הדרכה לשלב הזה אבל הוא באנגלית. תרצה לצפות בו? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! +ingame: + keybindingsOverlay: + moveMap: הזזה + selectBuildings: בחירת שטח + stopPlacement: הפסק השמה + rotateBuilding: סיבוב מבנה + placeMultiple: מקם כמה + reverseOrientation: כיוון הפוך + disableAutoOrientation: ביטול כיוון אוטומטי + toggleHud: הסתר/הצג תפריטים + placeBuilding: שים מבנה + createMarker: שים סימון + delete: מחיקה + pasteLastBlueprint: הדבקת התבנית האחרונה + lockBeltDirection: הנחת מסוע מהיר + plannerSwitchSide: הפוך צד המסוע + cutSelection: חיתוח + copySelection: העתקה + clearSelection: ביטול הבחירה + pipette: דגימה + switchLayers: החלפת שכבה + clearBelts: Clear belts + colors: + red: אדום + green: ירוק + blue: כחול + yellow: צהוב + purple: ורוד + cyan: תכלת + white: לבן + black: שחור + uncolored: אפור + buildingPlacement: + cycleBuildingVariants: לחץ <key> בשביל להחליף סוג. + hotkeyLabel: "מקש: <key>" + infoTexts: + speed: מהירות + range: אורך + storage: אחסון + oneItemPerSecond: חפץ 1 / second + itemsPerSecond: <x> חפצים / s + itemsPerSecondDouble: (x2) + tiles: <x> משבצות + levelCompleteNotification: + levelTitle: שלב <level> + completed: הסתיים + unlockText: נפתח <reward>! + buttonNextLevel: שלב הבא + notifications: + newUpgrade: עדכון חדש זמין! + gameSaved: המשחק שלך נשמר. + freeplayLevelComplete: שלב <level> הסתיים! + shop: + title: שדרוגים + buttonUnlock: שדרג + tier: רמה <x> + maximumLevel: רמה מקסימלית (מהירות x<currentMult>) + statistics: + title: סטטיסטיקה + dataSources: + stored: + title: מאוכסן + description: .כל הצורות שמאוכסנות בהאב + produced: + title: מיוצר + description: .כל הצורות שנוצרות בתוך המפעל שלך, כולל צורות בשביל צורות אחרות + delivered: + title: מגיע + description: .צורות שמגיעות להאב ברגע זה + noShapesProduced: .עדיין לא נוצרו צורות + shapesDisplayUnits: + second: <shapes> / s + minute: <shapes> / m + hour: <shapes> / h + settingsMenu: + playtime: זמן משחק + buildingsPlaced: מבנים + beltsPlaced: מסועים + tutorialHints: + title: צריך עזרה? + showHint: הצג רמז + hideHint: סגור + blueprintPlacer: + cost: מחיר + waypoints: + waypoints: סימונים + hub: האב + description: מקש שמאלי על סימון בשביל להגיע אליו, מקש ימני בשביל למחוק + אותו.<br><br>לחץ <keybinding> בשביל ליצור סימון במרכז המסך, או + <strong>מקש-ימני</strong> בשביל ליצור סימון במקום של העכבר. + creationSuccessNotification: הסימון נוצר. + shapeViewer: + title: שכבות + empty: ריק + copyKey: העתק קוד + interactiveTutorial: + title: מדריך + hints: + 1_1_extractor: שים <strong>חוצב</strong> מעל <strong>צורת עיגול</strong> בשביל + להשיג אותה! + 1_2_conveyor: "חבר את החוצב עם <strong>מסועים</strong> להאב שלך!<br><br>טיפ: + <strong>לחץ וגרור</strong> את המסוע עם העכבר שלך!" + 1_3_expand: "זה <strong>לא</strong> משחק שמחכים בו הרבה! בנה עוד חוצבים ומסועים + בשביל לסיים את המשימה מהר יותר.<br><br>טיפ: החזק + <strong>SHIFT</strong> בשביל לשים כמה חוצבים, והשתמש + ב<strong>R</strong> בשביל לסובב אותם." + 2_1_place_cutter: "עכשיו שים <strong>חותך</strong> בשביל לחתוך את העיגולים לשני + חצאים!<br><br> נ.ב: החותך תמיד חותך <strong>אנכית</strong> לא + משנה הכיוון שלו." + 2_2_place_trash: החותך יכול <strong>להסתם ולהתקע</strong>!<br><br> השתמש + ב<strong>פח</strong> בשביל להפתר מהשארית הלא שימושית (בינתיים). + 2_3_more_cutters: "עבודה טובה! עכשיו שים <strong>עוד 2 חותכים</strong> בשביל + להאיץ את התהליך!<br><br> נ.ב: השתמש <strong>במקשים 0-9</strong> + בשביל לבחור מבנים מהר יותר!" + 3_1_rectangles: "עכשיו בוא נחצוב כמה מלבנים! <strong>בנה 4 חוצבים</strong> וחבר + אותם עם מסועים להאב.<br><br> נ.ב: החזק <strong>SHIFT</strong> + בזמן שאתה גורר מסוע בשביל לבנות מסועים מהר יותר!" + 21_1_place_quad_painter: שים את ה<strong>צובע המרובע</strong> והשיג כמה + <strong>עיגולים</strong>, צבע <strong>לבן</strong> וצבע + <strong>אדום</strong>! + 21_2_switch_to_wires: החלף לשכבת הכבלים ע"י לחיצה על <strong>E</strong>!<br><br> + לאחר מכן <strong>חבר את כל ארבעת הכניסות</strong> של הצובע + לכבלים! + 21_3_place_button: נהדר! עכשיו שים <strong>מפסק</strong> ותחבק אותו לכבלים! + 21_4_press_button: "חלץ על המפסק כדי שהוא<strong>יפיק אות חיובי</strong> וזה + יפעיל את הצובע המרובע.<br><br> נ.ב: אתה לא צריך לחבר את כל + הכניסות! נסה לחבר רק 2." + connectedMiners: + one_miner: חוצב 1 + n_miners: <amount> חוצבים + limited_items: מוגבל ל<max_throughput> + watermark: + title: גרסת דמו + desc: לחץ פה בשביל לראות את היתרונות של הגרסה להורדה! + get_on_steam: Steamהשג ב + standaloneAdvantages: + title: "!השג את הגרסה המלאה" + no_thanks: "!לא, תודה" + points: + levels: + title: 12 שלבים חדשים + desc: '!סה"כ 26 שלבים' + buildings: + title: 18 מבנים חדשים + desc: "!אפשרות להפוך את המפעל לאוטומטי לגמרי" + achievements: + title: הישגים + desc: "!השג את כולם" + upgrades: + title: רמות לשדרוגים ∞ + desc: "!לגרסת הדמו הזאת יש רק 5" + markers: + title: סימונים ∞ + desc: "!אף פעם לא תלך לאיבוד במפעל שלך" + wires: + title: כבלים + desc: "!מימד חדש לגמרי" + darkmode: + title: תצוגה כהה + desc: "!תפסיק להכאיב לעיניים שלך" + support: + title: תמוך בי + desc: "!אני יצרתי רת המשחק הזה בזמני החופשי" + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate +shopUpgrades: + belt: + name: מסועים, מסדרים & מנהרות + description: מהירות x<currentMult> → x<newMult> + miner: + name: חציבה + description: מהירות x<currentMult> → x<newMult> + processors: + name: חיתוך, סיבוב & חיבור + description: מהירות x<currentMult> → x<newMult> + painting: + name: ערבוב & צביעה + description: מהירות x<currentMult> → x<newMult> +buildings: + hub: + deliver: ספק + toUnlock: בשביל + levelShortcut: שלב + endOfDemo: סוף הדמו + belt: + default: + name: מסוע + description: מעביר חפצים, לחץ וגרור בשביל לשים כמה. + miner: + default: + name: חוצב + description: שים מעל צורה או צבע בשביל להשיג אותם. + chainable: + name: חוצב (מתחבר) + description: שים מעל צורה או צבע בשביל להשיג אותם. יכול להתחבר. + underground_belt: + default: + name: מנהרה + description: מאפשר לך להעביר חפצים מתחת למבנים ומסועים. + tier2: + name: מנהרה רמה II + description: מאפשר לך להעביר חפצים מתחת למבנים ומסועים. + balancer: + default: + name: מאזן + description: רב שימישי- מחלק את כל הדברים שנכנסים באופן שווה לכל היציאות. + merger: + name: ממזג (קומפקטי) + description: מחבר שני מסועים לאחד. + merger-inverse: + name: ממזג (קומפקטי) + description: מחבר שני מסועים לאחד. + splitter: + name: מפצל (קומפקטי) + description: מפצל מסוע אחד לשניים. + splitter-inverse: + name: מפצל (קומפקטי) + description: מפצל מסוע אחד לשניים. + cutter: + default: + name: חותך + description: חותך את הצורות אנכית ומוציא את שני החלקים. <strong>אם אתה משתמש רק + בחלק אחד, תוודא שאתה הורס את החלק השני או שיווצר סתימה!</strong> + quad: + name: חותך (מרובע) + description: חותך את הצורות לארבעה חלקים. <strong>אם אתה משתמש רק בחלק אחד, + תוודא שאתה הורס את השאר החלקים או שיווצר סתימה!</strong> + rotater: + default: + name: מסובב + description: מסובב חלקים עם כיוון השעון ב90 מעלות. + ccw: + name: מסובב (נגד כיוון השעון) + description: מסובב חלקים נגד כיוון השעון ב90 מעלות. + rotate180: + name: מסובב (180°) + description: מסובב חלקים ב180 מעלות. + stacker: + default: + name: מחבר + description: מחבר את מה שנכנס, באותה שכבה אם אפשרי, אחרת הימני מוערם מעל השמאלי. + mixer: + default: + name: מערבב + description: מערבב את שני הצבעים לפי צבעי האור. + painter: + default: + name: צובע + description: צובע את הצורות מנכנסות הצד השמאלי בצבע שנכנס מלמעלה. + mirrored: + name: צובע + description: צובע את הצורות מנכנסות הצד השמאלי בצבע שנכנס מלמטה. + double: + name: צובע (כפול) + description: צובע את הצורות מנכנסות הצד השמאלי בצבע שנכנס מלמעלה. + quad: + name: צובע (מרובע) + description: מאפשר לצבוע כל רבע בצורה בנפרד. רק מקומות עם <strong>ערך + חיובי</strong> בשכבת הכבלים יצבעו! + trash: + default: + name: פח + description: הורס כל מה שנכנס אליו לנצח. + storage: + default: + name: אחסון + description: מאחסן חפצים שנשארו עד גבול מסויים. הוא מוציא בעדיפות לצד השמאלי, אז + אתה יכול להשתמש בצד הימני כשער הצפה. + wire: + default: + name: כבל + description: מעביר מידע, שהוא יכול להיות צורה, צבע, או בולאיני (0 או 1). כבלים + בצבים שונים לא יתחברו אחד לשני. + second: + name: כבל + description: מעביר מידע, שהוא יכול להיות צורה, צבע, או בולאיני (0 או 1). כבלים + בצבים שונים לא יתחברו אחד לשני. + wire_tunnel: + default: + name: הצלבת כבלים + description: מאפשר שני כבלים לחצות אחד את השני בלי להתחבר. + constant_signal: + default: + name: אות קבוע + description: מיצר אות קבוע, שהוא יכול להיות צורה, צבע, או בולאיני (0 או 1). + lever: + default: + name: מפסק + description: ניתן להפעיל או להפסיק אותו בשביל ליצור אות בולאיני (0 או 1) בשכבת + הכבלים, וכך יכול לשלוט על פעולה של מבנים כמו לדוגמה מסנן. + logic_gate: + default: + name: שער לוגי גם + description: פולט את הבוליאני "1" אם שני הכניסות הם ערך חיובי (ערך חיובי הוא כל + צורה, צבע או הבוליאני "1"). + not: + name: שער לוגי לא + description: פולט את הבוליאני "1" אם הכניסה הוא אינו ערך חיובי (ערך חיובי הוא כל + צורה, צבע או הבוליאני "1"). + xor: + name: שער לוגי קסור + description: Emits a boolean "1" if one of the inputs is truthy, but not both. + (Truthy means shape, color or boolean "1") + or: + name: שער לוגי או + description: פולט את הבוליאני "1" אם אחד מהכניסות הוא ערך חיובי (ערך חיובי הוא + כל צורה, צבע או הבוליאני "1"). + transistor: + default: + name: טרנזיסטור + description: מעביר את האינפורמציה מלמטה ללמעלה אם הכניסה מהצד היא ערך + חיובי (ערך חיובי הוא כל צורה, צבע או הבוליאני "1"). + mirrored: + name: טרנזיסטור + description: מעביר את האינפורמציה מלמטה ללמעלה אם הכניסה מהצד היא ערך + חיובי (ערך חיובי הוא כל צורה, צבע או הבוליאני "1"). + filter: + default: + name: מסנן + description: חבר לאות בשביל לסנן שרק משהו אחד יצא מלמעלה והשאר מהצד. יכול גם + לקבל ערכים בוליאנים (0 או 1). + display: + default: + name: מסך + description: חבר אות בשביל להציג אותו על המסך, האות יכול להיות צורה, צבע או + בוליאני. + reader: + default: + name: מסוע מדידה + description: מאפשר מדידה של הממוצע של כמה חפצים עוברים במסוע, מפיץ אות של החפץ + האחרון שעבר לשכבת הכבלים (מתי שנפתח). + analyzer: + default: + name: מנתח צורות + description: מנתח את הרבע העליון שמאלי של השכבה התחתונה של הצורה ומחזיר את הצורה + והצבע שלה. + comparator: + default: + name: משווה + description: מחזיר את הבולאיני "1" אם שני האותות הם שווים בדיוק. יכול להשוות + צורות צבעים ובוליאנים. + virtual_processor: + default: + name: חותך וירטואלי + description: חותך באופן וירטואלי את הצורה לשני חצאים. + rotater: + name: מסובב וירטואלי + description: מסובב באופן וירטואלי את הצורה עם כיוון השעון. + unstacker: + name: פורש וירטואלי + description: מוציא באופן וירטואלי את השכבה העליונה לצד ימין ואת השאר לצד שמאל. + stacker: + name: מחבר וירטואלי + description: מחבר באופן וירטואלי את הצורה בצד ימין על הצורה בצד שמאל. + painter: + name: צובע וירטואלי + description: צובע באופן וירטואלי את הצורה מלמטה בצבע מימין. + item_producer: + default: + name: מייצר חפצים + description: זמין רק במצב ארגז חול, מוצא את האות מהכבלים לשכבה הרגילה. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. +storyRewards: + reward_cutter_and_trash: + title: חיתוך צורות + desc: אתה בדיוק קיבלת גישה ל<strong>חותך</strong>, שחותך צורות לחצי אנכית + <strong>לא משנה איזה כיוון הוא</strong>!<br><br>וודא שאתה נפתר + מהשאריות, אחרת <strong>הוא יסתם ויתקע</strong> - בשביל המטרה הזאת + אני הבאתי לך את ה<strong>פח</strong>, שהורס כל מה שאתה מכניס אליו! + reward_rotater: + title: סיבוב + desc: קיבלת גישה ל<strong>מסובב</strong> ! הוא מסובב צורות עם כיוון השעון ב90 + מעלות. + reward_painter: + title: צביעה + desc: "קיבלת גישה ל<strong>צובע</strong> - תשיג צבעים (בדיוק כמו שאתה משיג + צורות) ותחבר אותם עם הצורות בעזרת הצובע בשביל לצבוע + אותם!<br><br>נ.ב: אם אתה עיוור צבעים, יש <strong>מצב עיוור + צבעים</strong> בהגדרות!" + reward_mixer: + title: ערבוב צבעים + desc: קיבלת גישה ל<strong>מערבב</strong> - הוא מערבב שני צבעים לפי <strong>צבעי + האור</strong>! + reward_stacker: + title: חיבור + desc: עכשיו אתה יכול לחבר צורות עם ה<strong>מחבר</strong>! שני הצורות שנכנסות + מתחברות. אם הם יכולים להיות אחד ליד השני הם <strong>יודבקו</strong>, + אחרת, הימני <strong>יודבק מעל</strong> השמאלי! + reward_balancer: + title: מאזן + desc: קיבלת גישה ל<strong>מאזן</strong> הרב שימושי - הוא יכול לשמש בשביל לבנות + מפעלים גדולים יותר ע"י <strong>פיצול וחיבור חפצים</strong> על מספר + מסועים! + reward_tunnel: + title: מנהרה + desc: קיבלת גישה ל<strong>מנהרה</strong> - אתה יכול עכשיו להעביר חפצים מתחת + למסועים ומבנים עם זה! + reward_rotater_ccw: + title: סיבוב נגד כיוון השעון + desc: קיבלת גישה לצורה נוספת של <strong>מסובב</strong> - זה מאפשר לך לסובב צורות + נגד כיוון השעון! בשביל לבנות את זה, תבחר מסובב, ו<strong>תלחץ 'T' + בשיל לחליף בין הסוגים שלו</strong>! + reward_miner_chainable: + title: חוצב מתחבר + desc: "קיבלת גישה ל <strong>חוצב מתחבר</strong>! הוא יכול <strong>להעביר את + החומרים קדימה</strong> לחוצבים האחרים, אז אתה יכול לחצוב חומרים יותר + ביעילות!<br><br> נ.ב: החוצבים הישנים הוחלפו עכשיו ברצועת הכלים שלך!" + reward_underground_belt_tier_2: + title: מהנרות רמה II + desc: קיבלת גישה לצורה נוספת של <strong>מנהרות</strong> - יש לו <strong>יותר + אורך</strong>, ואתה יכול גם לערבב ולהתאים את המנהרות האלו עכשיו! + reward_merger: + title: ממזג קומפקטי + desc: קיבלת גישה ל<strong>ממזג</strong>, צורה של <strong>מאזן</strong> - הוא + יכול למזג שני מסועים למסוע אחד! + reward_splitter: + title: מפצל קומפקטי + desc: קיבלת גישה ל<strong>מפצל</strong>, צורה של <strong>מאזן</strong> - הוא + יכול לפצל מסוע אחד לשני מסועים! + reward_belt_reader: + title: Belt reader + desc: קיבלת גישה ל<strong>מסוע מדידה</strong>! זה מאפשר לך למדוד כמה חפצים + עוברים במסוע.<br><br>וחכה עד שתפתח את הכבלים - אז זה יהיה ממש + שימושי! + reward_cutter_quad: + title: חותך מרובע + desc: קיבלת גישה לצורה נוספת של <strong>חותך</strong> - זה מאפשר לך לחתוך צורה + לארבעה ל<strong>ארבעה חלקים</strong> במקום רק שניים! + reward_painter_double: + title: צובע כפול + desc: קיבלת גישה לצורה נוספת של <strong>צובע</strong> - זה עובד דומה לצובע רגיל, + אבל מאפשר לך לצבוע <strong>שני צורות בבת אחת</strong>, משתמש בצבע + אחד במקום שניים! + reward_storage: + title: אחסון + desc: קיבלת גישה ל<strong>אחסון</strong> - זה מאפשר לך לאחסן חפצים עד כמות + מסויימת!<br><br> הוא מוציא בעדיפות לצד השמאלי, אז אתה יכול להשתמש + בצד הימני כ<strong>שער הצפה</strong>! + reward_blueprints: + title: תבניות + desc: אתה יכול עכשיו <strong>להעתיק ולהדביק</strong> חלקים מהמפעל שלך! תבחר שטח + (החזק CTRL, וגרור עם העכבר), ואז לחץ 'C' בשביל להעתיק את + זה.<br><br>הדבקה זה <strong>לא חינם</strong>, אתה צריך ליצר + <strong>צורת תבנית</strong> בשביל לקנות את זה! (אלו שבדיוק יצרת). + reward_rotater_180: + title: מסובב (180°) + desc: קיבלת גישה <strong>מסובב</strong> 180 מעלות! - זה מאפשר לך לסובב צורה ב + 180 מעולות (הפתעה! :D) + reward_wires_painter_and_levers: + title: כבלים & צובע מרובע + desc: "קיבלת גישה ל<strong>שכבת הכבלים</strong>: זה שכבה נפרדת מעל השכבה הרגילה + שמאפשרת לך הרבה מכניקות חדשות!<br><br> בשביל להתחיל, אני נתתי לך + גישה ל<strong>צובע המרובע</strong> - חבר את הכבלים למקומות שאתה רוצה + לצבוע בשכבת הכבלים!<br><br> בשביל להחליף לשכבת הכבלים, לחץ + <strong>E</strong>. <br><br> נ.ב: <strong>תפעיל רמזים</strong> + בהגדרות כדי להפעיל את המדריך של הכבלים!" + reward_filter: + title: מסנן + desc: קיבלת גישה ל<strong>מסנן</strong>! זה יאפשר לך לסנן חפצים לפי האותות משכבת + הכבלים.<br><br> אתה יכול גם לתת לו אות בולאיני (1 או 0) בשביל להפעיל + או לכבות אותו לגמרי. + reward_display: + title: מסך + desc: "קיבלת גישה ל<strong>מסך</strong> - חבר אות בשכבת הכבלים בשביל להציג + אותו!<br><br> נ.ב: שמת לב שמסועים ואחסון מוציאים את החפץ האחרון שהיה + בהם? נסה להציג את זה על מסך!" + reward_constant_signal: + title: אות קבוע + desc: קיבלת גישה ל<strong>אות קבוע</strong> לשכבת הכבלים! זה שימושי בשביל לחבר + אותו ל<strong>מסננים</strong> לדוגמה.<br><br> האות הקבוע יכול ליצור + <strong>צורה</strong>, <strong>צבע</strong> או + <strong>בוליאני</strong> (1 או 0). + reward_logic_gates: + title: שערים לוגים + desc: "קיבלת גישה ל<strong>שערים לוגים</strong>! אתה לא צריך להתרגש מזה, אבל זה + די מגניב!<br><br> עם שערים לוגים אתה יכול לחשב את הפעולות: וגם, או, + קסור ולא.<br><br> כבונוס אני גם הבאתי לך גם את + ה<strong>טרנזיסטור</strong>!" + reward_virtual_processing: + title: עיבוד וירטואלי + desc: אני הבאתי לך המון מבנים שמאפשרים לך <strong>לדמות עיבוד שלך + צורות</strong>!<br><br> אתה יכול לדמות בשכבת הכבלים חיתוך, סיבוב, + חיבור ועוד! עם זה יש לך עכשיו שלושה אפשרויות להמשיך את + המשחק:<br><br> - לבנות <strong>מכונה אוטומטית</strong> שתייצר כל + צורה אפשרית שההאב מבקש (אני ממליץ לנסות את זה!).<br><br> - לבנות + משהו מגניב עם הכבלים.<br><br> - להמשיך לשחק רגיל.<br><br> עם כל מה + שתבחר, תזכור להנות! + no_reward: + title: שלב הבא + desc: "השלב הזה לא הביא לך פרסים, אבל ההבא יביא! <br><br> נ.ב: עדיף לא להרוס את + המפעלים הקיימים שלך - אתה תצטרך את <strong>כל</strong> הצורות האלו + מאוחר יותר בשביל <strong>לפתוח שדרוגים</strong>!" + no_reward_freeplay: + title: שלב הבא + desc: כל הכבוד! + reward_freeplay: + title: משחק חופשי + desc: You did it! You unlocked the <strong>free-play mode</strong>! This means + that shapes are now <strong>randomly</strong> generated!<br><br> + Since the hub will require a <strong>throughput</strong> from now + on, I highly recommend to build a machine which automatically + delivers the requested shape!<br><br> The HUB outputs the requested + shape on the wires layer, so all you have to do is to analyze it and + automatically configure your factory based on that. + reward_demo_end: + title: סוף הדמו + desc: הגעת לסוף גרסת הדמו +settings: + title: הגדרות + categories: + general: כללי + userInterface: תפריטים + advanced: מתקדם + performance: ביצועים + versionBadges: + dev: Development + staging: Staging + prod: Production + buildDate: Built <at-date> + rangeSliderPercentage: <amount> % + labels: + uiScale: + title: גודל תפריטים + description: שנה את הגודל של התפריטים + scales: + super_small: זעיר + small: קטן + regular: רגיל + large: גדול + huge: עצום + autosaveInterval: + title: זמן בין שמירות אוטומטיות + description: .משפיע על תדירות השמירה האוטומטית. אתה יכול גם לבטל את זה לגמרי + intervals: + one_minute: דקה + two_minutes: שתי דקות + five_minutes: חמש דקות + ten_minutes: עשר דקות + twenty_minutes: עשרים דקות + disabled: אף פעם + scrollWheelSensitivity: + title: רגישות זום + description: משפיע על כמה רגיש הזום (גם הגלגלת וגם משטח הנגיעה) + sensitivity: + super_slow: ממש לאט + slow: לאט + regular: רגיל + fast: מהר + super_fast: ממש מהר + movementSpeed: + title: מהירות תנועה + description: משנה כמה מהר התצוגה זזה כשמשתמשים במקלדת או שמים את העכבר בגבולות + המסך. + speeds: + super_slow: ממש לאט + slow: לאט + regular: רגיל + fast: מהר + super_fast: קצת מהר + extremely_fast: ממש מהר + language: + title: שפה + description: '!שנה את השפה. כל השפות נוצרו ע"י משתמשים ולכן אולי לא יהיו מלאים' + enableColorBlindHelper: + title: מצב עיוורי צבעים + description: .הפעלת כלים שונים שמאפשרים לך לשחק אם אתה עיוור צבעים + fullscreen: + title: מסך מלא + description: .זה מומלץ לשחק את המשחק במסך מלא השהיל החוויה המיטבית. זמין רק + בגרסה להורדה + soundsMuted: + title: השתקת צלילים + description: .אם מופעל, משתיק את כל הצלילים + musicMuted: + title: השתקת מוזיקה + description: .אם מופעל, משתיק את המוזיקה + soundVolume: + title: ווליום + description: .משפיע על הווליום של הצלילים + musicVolume: + title: מוזיקה + description: .משפיע על הווליום של המוזיקה + theme: + title: תצוגה + description: .שנה תצוגה לכהה או בהירה + themes: + dark: כהה + light: בהיר + refreshRate: + title: Tick Rate + description: .ים יהיו בכל שנייהtick זה משפיע כמה + alwaysMultiplace: + title: השמה מרובה + description: .באופן קבוע SHIFT אם מופעל, כל המבנים ישארו נבחרים גם אחרי ששמים + אותם עד שאתה מבטל את זה. זה זהה ללחיצת + offerHints: + title: רמזים ומדריכים + description: .האם להציג רמזים ומדריכים. בנוסף מסתיר חלק מהתפריטים עד לשלב מסויים + בשביל להקל על הכניסה למשחק + enableTunnelSmartplace: + title: מנהרות חכמות + description: .מתי שמופעל, מקום מנהרות ימחק באופן אוטומטי מסועים לא שימושיים. זה + גם ימחק מנהרות מיותרות + vignette: + title: הצללה + description: .מפעיל הצללה, שמכהה את הקצבות של המסך ועושה שיהיה יותר קל לקרוא את + הטקסט + rotationByBuilding: + title: סיבוב ע"י סוג מבנה + description: .כל מבנה זוכר את הכיוון ששמת אותו פעם אחרונה. זה יכול להיות נוח אם + אתה מחליף בין מבנים שונים הרבה פעמים + compactBuildingInfo: + title: אינפורמצית מבנים קומפקטית + description: .מקצר את קופסת האינפורמציה של המבנים שיציג רק את המהירות שלו. אחרת + הסבר ותמונה יופיעו + disableCutDeleteWarnings: + title: ביטול אזהרה בעת חיתוך ומחיקה + description: .ביטול ההזהרה שמופיעה מתי שחותכים/מוחקים יותר מ1000 מבנים + lowQualityMapResources: + title: איכות ירודה של מאגרים + description: .מפשט את הרנדור של המשאבים על המפה מתי שמסתכלים מקרוב בשביל לשפר את + הביצועים !זה אפילו נראה נקי יותר, אז תנסה את זה + disableTileGrid: + title: הסתר את רשת + description: "!הסתרת הרשת יכולה לשפר את הביצועים. זה גם יכול לגרום למשחק להראות + נקי יותר" + clearCursorOnDeleteWhilePlacing: + title: נקה את הסמן בלחיצה על מקש ימני + description: .מופעל בברירת המחדל, מנקה את הסמן מתי שאתה לוחץ מקש ימני. אם זה + כבוי אתה יכול למחוק מבנים עם מקש ימני מתי שאתה מחזיק מבנה + lowQualityTextures: + title: טקסטורה באכות ירודה (מכוער) + description: "!משתמש בטקסטורה באיכות ירודה בשביל לשפר את הביצועים. זה גורם למשחק + להראות ממש מכוער" + displayChunkBorders: + title: מציג גבולות צ'נקים + description: .המשחק מחולק לצ'נקים של 16 על 16 משבצות, אם ההגדרה הזאת מופעלת, + הגבולות של הצ'נקים יופיעו + pickMinerOnPatch: + title: בחר חוצב על מאגר + description: .מופעל בברירת המחדל, בוחר את החוצב אם אתה דוגם כשהעכבר מעל מאגר + simplifiedBelts: + title: מסועים פשוטים (מכוער) + description: .לא מציג חומרים על מסועים חוץ ממתי שמעבירים את הסמן מעליהם בשביל + לשפר ביצועים. אני לא ממליץ לשחק עם ההגדרה הזאת ממש צריך את + הביצועים האלו + enableMousePan: + title: תנועה בנגיעה בקצה המסך + description: .מאפשר לזוז ע"י הצמדת העכבר לקצה המסך. המהירות נקבעת ע"י המהירות של + התנועה עם המקשים + zoomToCursor: + title: הגדלה לכיוון הסמן + description: .אם מופעל, הזום יהיה לכיוון הסמן של העכבר, אחרת למרכז המסך + mapResourcesScale: + title: גודל המשאבים במפה + description: .שולט על הגודל של הצורות על המפה (בתצוגה המוקטנת) + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. + tickrateHz: <amount> Hz +keybindings: + title: מקשים + hint: ".הם מאפשרים הרבה אפשרויות השמה !ALTו SHIFT ,CTRLטיפ: השתמש ב" + resetKeybindings: אפס + categoryLabels: + general: תוכנה + ingame: משחק + navigation: תנועה + placement: השמה + massSelect: בחירה + buildings: קיצורים למבנים + placementModifiers: תוספי השמה + mappings: + confirm: אישור + back: חזרה + mapMoveUp: לזוז למעלה + mapMoveRight: לזוז ימינה + mapMoveDown: לזוז למטה + mapMoveLeft: לזוז שמאלה + mapMoveFaster: לזוז מהר + centerMap: לזוז למרכז + mapZoomIn: הגדלת תצוגה + mapZoomOut: הקטנת תצוגה + createMarker: צור סימון + menuOpenShop: שדרוגים + menuOpenStats: סטטיסטיקה + menuClose: סגירת תפריט + toggleHud: הצג/הסתר תפריטים + toggleFPSInfo: ואיפורמציה לפתרון באגים FPS הצג/הסתר + switchLayers: החלף שכבות + exportScreenshot: צור צילום מסך של כל המפעל + belt: מסוע + balancer: מאזן + underground_belt: מנהרה + miner: חוצב + cutter: חותך + rotater: מסובב + stacker: מחבר + mixer: מערבב + painter: צובע + trash: פח + storage: אחסון + wire: כבל + constant_signal: אות קבוע + logic_gate: שער לוגי + lever: מפסק + filter: ממיין + wire_tunnel: הצלבת כבלים + display: מסך + reader: מסוע מדידה + virtual_processor: מעבד וירטואלי + transistor: טרנזיסטור + analyzer: מנתח צורות + comparator: משווה + item_producer: מייצר חפצים (ארגז חול) + pipette: דגימה + rotateWhilePlacing: סיבוב + rotateInverseModifier: "Modifier: סיבוב נגד כיוון השעון במקום" + rotateToUp: "לסובב: למעלה" + rotateToDown: "לסובב: למטה" + rotateToRight: "לסובב: ימינה" + rotateToLeft: "לסובב: שמאלה" + cycleBuildingVariants: החלפת סוגים של מבנה + confirmMassDelete: מחיקת שטח + pasteLastBlueprint: הדבקת התבנית האחרונה + cycleBuildings: החלפת מבנה + lockBeltDirection: הפעלת בנייה מהירה של מסועים + switchDirectionLockSide: "בנייה מהירה של מסועים: החלפת צד" + copyWireValue: "כבלים: העתקת ערך מתחת לעכבר" + massSelectStart: החזק וגרור כדי להתחיל + massSelectSelectMultiple: בחר כמה איזורים + massSelectCopy: העתקת איזור + massSelectCut: חיתוך איזור + placementDisableAutoOrientation: ביטול כיוון אוטומטי + placeMultiple: השאר במצב השמה + placeInverse: הפוך כיוון מסוע + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip +about: + title: בנוגע למשחק הזה + body: >- + .(זה אני) <a href="https://github.com/tobspr" target="_blank">Tobias + Springer</a> המשחק הזה הוא עם קוד פתוח ויוצר ע"י <br><br> + + .<a href="<githublink>" target="_blank">shapez.io on GitHub</a>-אם אתה רוצה לתרום, כנס ל<br><br> + + המשחק הזה לא היה אפשרי בלי קהילת הדיסקורד המופלאה מסביב למשחקים שלי - באמת כדאי לך להצטרף ל<a href="<discordlink>" target="_blank">שרת הדיסקורד</a>!<br><br> + + .הוא מדהים - <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> הסאונד נוצר ע"י<br><br> + + .המשחק הזה לא היה קיים Factorio אם לא היינו משחקים - <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> לבסוף, תודה ענקית לחבר הכי טוב שלי +changelog: + title: עדכונים +demo: + features: + restoringGames: שחזור משחקים שמורים + importingGames: יבוא משחקים שמורים + oneGameLimit: מוגבל לשמירה אחת + customizeKeybindings: מקשים בהתאמה אישית + exportingBase: יצוא כל המפעל כתמונה + settingNotAvailable: .הגדרה לא זמינה בדמו +tips: + - "!ההאב יקבל כל צורה, לא רק את הצורה הנדרשת עכשיו" + - "!וודא שהמפעלים שלך מחולקים - זה יהיה לך יותר קל" + - "!אל תבנה יותר מדיי קרוב להאב, זה יהפוך לבלגן" + - .אם החיבור לא עובד, תנסה להחליף את מה נכנס לאיזה צד + - .<b>R</b> אתה יכול לשנות את הכיוון של בניית המסועים המהירה ע"י ללחוץ על + - .תאפשר לבנות הרבה מסילות באותו כיוון <b>CTRL</b> החזקת + - .היחס של המהירויות של המבנים ישאר זהה אם השדרוגים הם באותו רמה + - .לשים חפצים במסוע אחת מאשר כמה יהיה יותר יעיל במקום + - "!אתה תשיג עוד צורות של מבנים בהמשך המשחק" + - .בשביל להחליף בין צורות שונות של מבנים <b>T</b>אתה יכול להשתמש ב + - "!סימטריה זה המפתח" + - .אתה יכול לשים סוגים שונים של מנהרות על אותו קו לסרוגין + - "!נסה לבנות מפעלים קומפקטים, זה ישתלם" + - <b>T</b> לצובע יש סוג הפוך שאתה יכול לבחור ע"י + - .אם יש לך את היחס הנכון בין כמות המבנים, יהיה לך את האיכות המיטבית + - .ברמה המקסימלית, 5 חוצבים ימלאו מסוע אחד + - "!אל תשכח בקשר למנהרות" + - .אתה לא צריך לחלק חפצים באופן שווה בשביל יעילות המיטבית + - .תפעיל את מצב בנייה מהירה של מסועים, שתתן לך לשים מסועים ארוכים בקלות + <b>SHIFT</b> החזקת + - .חותכים תמיד חותכים לגובה, לא משנה מה הכיוון שלהם + - .ערבב את כל שלושת הצבעים הבסיסיים בשביל להשיג את הצבע לבן + - .לאכסון יש העדפה להוציא רק מהצד השמאלי + - "!הכן לך עיצוב של מבנה שתוכל להשתמש בו כשתצטרך - זה שווה את זה" + - .תתן לך לבנות כמה מבנים באותו זמן <b>SHIFT</b> החזקת + - .בשביל להפוך את הכיוון של המסועים שאתה שם <b>ALT</b> אתה יכול להחזיק + - "!יעילות זה המפתח" + - .מאגרי צורות שיותר רחוקות מההאב הן יותר מסובכות + - .למכונות יש מהירות מוגבלת, חלק את החומרים בשביל היעילות המיטבית + - .התשמש במאזנים בשביל למקסם את היעילות + - .כיוון זה לא חשוב. נסה לא לחצות מסועים יותא מידי + - "!תכנן מראש, אחרת יהיה לך בלאגן" + - .אל תמחק את המפעלים הישנים שלך! אתה תצתרך אותם בשביל לפתוח שדרוגים + - "!נסה לפתור את השלבים 20 ו26 בעצמך לפני שאתה מחפש פתרונות" + - .אל תסבך דברים, נסה להשאר פשוט ותגיע רחוק + - .אתה כנראה תצטרך להשתמש במפעלים שלך שוב בהמשך המשחק. תבנה את המפעלים שלך + בצורה שתוכל להשתמש בהם שוב בהמשך + - .לפעמים אתה יכול למצוא צורה שאתה צריך במפה בלי להתחיל לבנות אותה עם חותכים + ומחברים + - .צורת תחנת רוח שלמה לעולם לא תופיע בטבעיות במפה + - .צבע את הצורות לפני שאתה חותך אותם בשביל האיכות המיטבית + - .אם תפצל את המפעל שלך, לא יהיה לך חסר מקום + - .הכן תבניות נפרדות למפעל שלך. הם יהיו חשובים בשביל החלקים של המפעל שלך + - .הסתכל על המערבב צבעים מקרוב יותר והשאלות שלך יפתרו + - .גרירה בשביל לבחור שטח + <b>CTRL</b>השתמש ב + - .בנייה קרובה מידי להאב יכולה להפריע בדרך של פרוייקטים מאוחרים יותר + - .סימן הסיכה ליד כל צורה בשדרוגים תצמיד אותה לצד שמאל של המסך + - .ערבב את כל שלושת הצבעים הבסיסיים בשביל להשיג את הצבע לבן + - "!יש לך מפה אין סופית. אל תשים את המפעל שלך רק צמוד להאב, תרחיב אותו" + - .זה המשחק האהוב עליי !Factorio נסה גם את את + - .החותך המרובע חותך עם כיוון השעון, מתחיל מלמעלה ימין. + - "!אתה יכול להוריד את השמירות שלך בתפריט הראשי!" + - .למשחק הזה יש הרבה מקשים שימושיים! חפש אותם בהגדרות. + - "!למשחק הזה יש הרבה הגדרות, חפש אותם" + - "!לסימון של ההאב שלך יש חץ שמסמן באיזה כיוון הוא" + - .בשביל לנקות מסוע, חתוך את האיזור ואז תדביק באותו מקום + - .לחץ F4 בשביל להציג את הFPS ואת הTickRate + - .לחץ F4 פעמיים בשביל להציג את המשבצת שהעכבר והמצלמה בהם + - .אתה יכול ללחוץ על צורה מוצמדת בצד שמאל בשביל לבטל את ההצמדה +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-hr.yaml b/translations/base-hr.yaml index ae62d58c..e2d85f7c 100644 --- a/translations/base-hr.yaml +++ b/translations/base-hr.yaml @@ -13,39 +13,14 @@ steamPage: While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages - advantages: - - <b>12 New Level</b> for a total of 26 levels - - <b>18 New Buildings</b> for a fully automated factory! - - <b>Unlimited Upgrade Tiers</b> for many hours of fun! - - <b>Wires Update</b> for an entirely new dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. - - Be sure to check out my trello board for the full roadmap! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Učitavanje error: Greška @@ -77,6 +52,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: Demo Verzija intro: Nabavi samostalnu igru kako bi otključao sve značajke! @@ -96,6 +72,12 @@ mainMenu: savegameLevel: Nivo <x> savegameLevelUnknown: Nepoznati Nivo savegameUnnamed: Unnamed + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -109,6 +91,9 @@ dialogs: viewUpdate: Pogledaj ažuriranje showUpgrades: Pokaži Nadogradnje showKeybindings: Pokaži tipke + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Greška prilikom uvoza text: "Neuspješan uvoz spremljene igre:" @@ -206,6 +191,70 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Kretanje @@ -227,6 +276,7 @@ ingame: clearSelection: Očisti odabir pipette: Pipeta switchLayers: Promijeni sloj + clearBelts: Clear belts colors: red: Crvena green: Zelena @@ -356,9 +406,6 @@ ingame: buildings: title: 18 New Buildings desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! upgrades: title: ∞ Upgrade Tiers desc: This demo version has only 5! @@ -374,6 +421,50 @@ ingame: support: title: Support me desc: I develop it in my spare time! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Trake, Distributer i Tuneli @@ -578,6 +669,18 @@ buildings: name: Item Producer description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Rezanje Oblika @@ -685,8 +788,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the @@ -896,7 +999,12 @@ settings: title: Map Resources Size description: Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Tipka hint: "Savjet: Be sure to make use of CTRL, SHIFT and ALT! They enable different @@ -970,6 +1078,15 @@ keybindings: comparator: Compare item_producer: Item Producer (Sandbox) copyWireValue: "Wires: Copy value below cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: O Igri body: >- @@ -1055,3 +1172,88 @@ tips: - Press F4 to show your FPS and Tick Rate. - Press F4 twice to show the tile of your mouse and camera. - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-hu.yaml b/translations/base-hu.yaml index cfbce76a..dbf105e4 100644 --- a/translations/base-hu.yaml +++ b/translations/base-hu.yaml @@ -11,43 +11,18 @@ steamPage: És ha ez nem lenne elég, exponenciálisan többet kell termelned az igények kielégítése érdekében - az egyetlen dolog, ami segít, az a termelés mennyisége! Az alakzatokat a játék elején csak feldolgoznod kell, később azonban színezned is kell őket - ehhez bányászni és keverni kell a színeket! A játék Steamen történő megvásárlása hozzáférést biztosít a teljes verzióhoz, de kipróbálhatod a játékot a shapez.io oldalon, és később dönthetsz! - title_advantages: Önálló Verzió Előnyei - advantages: - - <b>12 Új Szint</b>, összesen 26 - - <b>18 Új Épület</b> egy teljesen automatizált gyárhoz! - - <b>20 Fejlesztési szint</b> sok órányi szórakozáshoz! - - <b>Vezetékek Frissítés</b> egy teljesen új dimenzióhoz! - - <b>Sötét mód</b>! - - Végtelen mentés - - Végtelen Jelölő - - Támogatod a Fejlesztőt ❤️ - title_future: Tervezett Tartalom - planned: - - Tervrajz Könyvtár - - Steam Eredmények - - Puzzle Mód - - Kistérkép - - Modok - - Homokozó játékmód - - ... és még sok más! - title_open_source: A játék nyílt forráskódú! - text_open_source: >- - Bárki hozzájárulhat, aktívan részt veszek a közösségben és próbálok - áttekinteni minden javaslatot, és figyelembe veszem a visszajelzéseket, - ahol lehetséges. - - Feltétlenül nézd meg a Trello táblámat a teljes ütemtervért! - title_links: Linkek - links: - discord: Hivatalos Discord - roadmap: Ütemterv - subreddit: Subreddit - source_code: Forráskód (GitHub) - translate: Segíts lefordítani + what_others_say: Mit mondanak mások a shapez.io-ról + nothernlion_comment: Ez a játék nagyszerű - Csodás élmény vele játszani, az idő + meg csak repül. + notch_comment: Basszus... aludnom kéne, de épp most jöttem rá, hogyan tudok + számítógépet építeni a shapez.io-ban! + steam_review_comment: Ez a játék ellopta az életemet, de nem kérem vissza! + Nagyon nyugis gyárépítős játék, amiben nem győzöm a futószalagjaimat + optimalizálni. global: loading: Betöltés error: Hiba - thousandsDivider: "." + thousandsDivider: . decimalSeparator: "," suffix: thousands: e @@ -75,6 +50,7 @@ global: escape: ESC shift: SHIFT space: SZÓKÖZ + loggingIn: Bejelentkezés demoBanners: title: Demó verzió intro: Vásárold meg az Önálló Verziót a teljes játékélményért! @@ -94,6 +70,12 @@ mainMenu: savegameLevel: <x>. szint savegameLevelUnknown: Ismeretlen szint savegameUnnamed: Névtelen + puzzleMode: Fejtörő Mód + back: Vissza + puzzleDlcText: Szereted optimalizálni a gyáraid méretét és hatákonyságát? + Szerezd meg a Puzzle DLC-t a Steamen most! + puzzleDlcWishlist: Kívánságlistára vele! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -107,6 +89,9 @@ dialogs: viewUpdate: Frissítés Megtekintése showUpgrades: Fejlesztések showKeybindings: Irányítás + retry: Újra + continue: Folytatás + playOffline: Offline Játék importSavegameError: title: Importálás Hiba text: "Nem sikerült importálni a mentésedet:" @@ -207,6 +192,71 @@ dialogs: title: Oktatás Elérhető desc: Elérhető egy oktatóvideó ehhez a szinthez, de csak angol nyelven. Szeretnéd megnézni? + editConstantProducer: + title: Elem beállítása + puzzleLoadFailed: + title: Fejtörő betöltése sikertelen + desc: "Sajnos a fejtörőt nem sikerült betölteni:" + submitPuzzle: + title: Fejtörő Beküldése + descName: "Adj nevet a fejtörődnek:" + descIcon: "Írj be egy egyedi gyorskódot, ami a fejtörőd ikonja lesz + (<link>itt</link> tudod legenerálni, vagy válassz egyet az alábbi + random generált alakzatok közül):" + placeholderName: Fejtörő Neve + puzzleResizeBadBuildings: + title: Átméretezés nem lehetséges + desc: Nem tudod tovább csökkenteni a zóna méretét, mert bizonyos épületek + kilógnának a zónából. + puzzleLoadError: + title: Hibás Fejtörő + desc: "A fejtörőt nem sikerült betölteni:" + offlineMode: + title: Offline Mód + desc: Nem tudjuk elérni a szervereket, így a játék Offline módban fut. Kérlek + győződj meg róla, hogy megfelelő az internetkapcsolatod. + puzzleDownloadError: + title: Letöltési Hiba + desc: "Nem sikerült letölteni a fejtörőt:" + puzzleSubmitError: + title: Beküldési Hiba + desc: "Nem sikerült beküldeni a fejtörőt:" + puzzleSubmitOk: + title: Fejtörő Közzétéve + desc: Gratulálunk! A fejtörődet közzétettük, így mások által is játszhatóvá + vált. A fejtörőidet a "Fejtörőim" ablakban találod. + puzzleCreateOffline: + title: Offline Mód + desc: Offline módban nem lehet elmenteni és közzétenni a fejtörődet. Szeretnéd + így is folytatni? + puzzlePlayRegularRecommendation: + title: Javaslat + desc: A Puzzle DLC előtt <strong>erősen</strong> ajánlott az alapjátékot + legalább a 12-dik Szintig kijátszani. Ellenekző esetben olyan + mechanikákkal találkozhatsz, amelyeket még nem ismersz. Szeretnéd + így is folytatni? + puzzleShare: + title: Gyorskód Másolva a Vágólapra + desc: A fejtörő gyorskódját (<key>) kimásoltad a vágólapra! A Fejtörők menüben + beillesztve betöltheted vele a fejtörőt. + puzzleReport: + title: Fejtörő Jelentése + options: + profane: Durva + unsolvable: Nem megoldható + trolling: Trollkodás + puzzleReportComplete: + title: Köszönjük a visszajelzésedet! + desc: A fejtörőt sikeresen jelentetted. + puzzleReportError: + title: Nem sikerült jelenteni + desc: "A jelentésedet nem tudtuk feldolgozni:" + puzzleLoadShortKey: + title: Gyorskód Beillesztése + desc: Illeszd be a gyorskódot, hogy betöltsd a Fejtörőt. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Mozgatás @@ -228,6 +278,7 @@ ingame: clearSelection: Kijelölés megszüntetése pipette: Pipetta switchLayers: Réteg váltás + clearBelts: Futószalagok Kiürítése colors: red: Piros green: Zöld @@ -359,9 +410,6 @@ ingame: buildings: title: 18 Új Épület desc: Egy teljesen automatikus gyárhoz! - savegames: - title: ∞ Mentés - desc: Amennyit csak szeretnél! upgrades: title: ∞ Fejlesztési Szint desc: A Demó Verzió csak 5-öt tartalmaz! @@ -377,6 +425,52 @@ ingame: support: title: Támogass desc: A játékot továbbfejlesztem szabadidőmben + achievements: + title: Steam Achievementek + desc: Szerezd meg mindet! + puzzleEditorSettings: + zoneTitle: Zóna + zoneWidth: Szélesség + zoneHeight: Magasság + trimZone: Üres szegélyek levásága + clearItems: Elemek eltávolítása + share: Megosztás + report: Jelentés + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Fejtörő Készítő + instructions: + - 1. Helyezz le <strong>Termelőket</strong>, amelyek alakzatokat és + színeket generálnak a játékosoknak. + - 2. Készíts el egy vagy több alakzatot, amit szeretnél, hogy a + játékos később legyártson, és szállítsd el egy vagy több + <strong>Elfogadóba</strong>. + - 3. Amint az Elfogadóba folyamatosan érkeznek az alakzatok, + <strong>elmenti, mint célt</strong>, amit a játékosnak később + teljesítenie kell (Ezt a <strong>zöld jelölő</strong> mutatja). + - 4. Kattints a <strong>Lezárás gombra</strong> egy épületen, hogy + felfüggeszd azt. + - 5. A fejtörőd beküldésekor átnézzük azt, majd lehetőséged lesz + közzétenni. + - 6. A fejtörő kiadásakor, <strong>minden épület törlődik</strong>, + kivéve a Termelők és az Elfogadók - a többit ugyebár a játékosnak + kell majd kitalálnia :) + puzzleCompletion: + title: Fejtörő Teljesítve! + titleLike: "Kattins a ♥ gombra, ha tetszett a fejtörő:" + titleRating: Mennyire találtad nehéznek a fejtörőt? + titleRatingDesc: Az értékelésed lehetővé teszi, hogy okosabb javaslatokat kapj a + jövőben + continueBtn: Játék Folytatása + menuBtn: Menü + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Szerző + shortKey: Gyorskód + rating: Nehézség + averageDuration: Átlagos Időtartam + completionRate: Teljesítési Arány shopUpgrades: belt: name: Futószalagok, Elosztók & Alagutak @@ -586,6 +680,19 @@ buildings: name: Létrehozó description: Csak Homokozó módban elérhető. Létrehozza a Vezeték rétegen beállított jelet a normál rétegen. + constant_producer: + default: + name: Termelő + description: Folyamatosan termeli a beállított alakzatot vagy színt. + goal_acceptor: + default: + name: Elfogadó + description: Szállíts alakzatoakt az Elfogadóba, hogy beállítsd egy Fejtörő + céljaként. + block: + default: + name: Blokkolás + description: Lehetővé teszi, hogy leblokkolj egy csempét. storyRewards: reward_cutter_and_trash: title: Alakzatok Vágása @@ -743,7 +850,14 @@ storyRewards: desc: Elérted a Demó verzió végét! reward_freeplay: title: Végtelen Játékmód - desc: Megcsináltad! Feloldottad a <strong>Végtelen Játékmódot</strong>! Innentől kezdve az alakzatok <strong>véleetlenszerűen</strong> generálódnak!<br><br> A Központ innentől nem darabszámot kér, hanem <strong>átmenő teljesítményt</strong>, így ajánlom, hogy építs egy olyan gépezetet, amely automatikusan eljuttatja a Központnak a kívánt alakzatot!<br><br> A Központ kiküldi a kívánt alakzatot a Vezeték rétegre, szóval annyi a dolgot, hogy megvizsgáld az Alakzatvizsgálóval és ez alapján beállítsd a gyáradat. + desc: Megcsináltad! Feloldottad a <strong>Végtelen Játékmódot</strong>! Innentől + kezdve az alakzatok <strong>véleetlenszerűen</strong> + generálódnak!<br><br> A Központ innentől nem darabszámot kér, hanem + <strong>átmenő teljesítményt</strong>, így ajánlom, hogy építs egy + olyan gépezetet, amely automatikusan eljuttatja a Központnak a + kívánt alakzatot!<br><br> A Központ kiküldi a kívánt alakzatot a + Vezeték rétegre, szóval annyi a dolgot, hogy megvizsgáld az + Alakzatvizsgálóval és ez alapján beállítsd a gyáradat. settings: title: Beállítások categories: @@ -912,7 +1026,12 @@ settings: title: Erőforrások Mérete a Térképen description: Kizoomolt állapotban a térképen megjelenő erőforrások (alakzatok és színek) méretét állítja. + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Gyorsbillentyűk hint: "Tipp: Használd ki a CTRL, SHIFT és ALT billentyűket, amelyek különféle @@ -986,6 +1105,15 @@ keybindings: placementDisableAutoOrientation: Automatikus irány kikapcsolása placeMultiple: Több lehelyezése placeInverse: Futószalag irányának megfordítása + rotateToUp: "Forgatás: Felfelé" + rotateToDown: "Forgatás: Lefelé" + rotateToRight: "Forgatás: Jobbra" + rotateToLeft: "Forgatás: Balra" + constant_producer: Termelő + goal_acceptor: Elfogadó + block: Blokkolás + massSelectClear: Futószalagok Kiürítése + showShapeTooltip: Show shape output tooltip about: title: A Játékról body: >- @@ -1016,30 +1144,29 @@ tips: - Igyekezz kompakt gyárakat építeni - megéri! - Ne építs közvetlenül a Központ közelébe, mert óriási káoszt okozhat! - A szalagtervező irányát az <b>R</b> billentyűvel állíthatod. - - Az arányok mindaddig állandók maradnak, amíg a Fejlesztéseid azonos - szinten vannak. + - Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - A soros végrehajtás hatékonyabb, mint a párhuzamos. - - A <b>T</b> megnyomásával váltogathatsz a különböző épülettípusok között. + - Serial execution is more efficient than parallel. - A szimmetria kulcsfontosságú! - - A hatékonyság kulcsfontosságú! - - A Festőnek van egy tükrözött változata is, amit a <b>T</b>-vel hozhatsz elő. - - Az épületek megfelelő arányban való építésével maximalizálható a hatékonyság. + - You can use <b>T</b> to switch between different variants. + - A szimmetria kulcsfontosságú! + - Az épületek megfelelő arányban való építésével maximalizálható a + hatékonyság. - A legmagasabb szinten 5 Bánya teljesen megtölt egy Futószalagot. - - Ne feledkezz meg az Alagutakról! - - A <b>SHIFT</b> lenyomva tartásával bekapcsolod a Futószalagok automatikus - iránykeresését, amellyel hosszú Futószalagokat helyezhetsz le könnyedén. + - The painter has a mirrored variant which you can select with <b>T</b> + - Having the right building ratios will maximize efficiency. - A Vágók mindig függőleges irányban vágnak, mindegy, milyen irányban állnak. - A fehér szín előállításához keverd össze mindhárom színt. - - A <b>SHIFT</b> lenyomva tartásával több épületet is lehelyezhetsz egymás után. - - Az <b>ALT</b> lenyomva tartásával megfordíthatod a lehelyezendú Futószalag irányát. + - You don't need to divide up items evenly for full efficiency. + - Az <b>ALT</b> lenyomva tartásával megfordíthatod a lehelyezendú Futószalag + irányát. - A hatékonyság kulcsfontosságú! - A Központtól távolabb eső bányászható alakzatok jóval összetettebbek. - A gépeknek korlátozott sebességük van, csinálj belőlük többet a maximális hatékonyságért. - Használj Elosztókat a maximális hatékonyságért. - - A rendszerezettség fontos. Igyekezz a lehető legkevesebbszer keresztezni - Futószalagokat. - - Tervezz előre, mert óriási káosz lehet a vége! + - Holding <b>SHIFT</b> lets you place multiple buildings at a time. + - You can hold <b>ALT</b> to invert the direction of placed belts. - Ne rombold le a régi gyáraidat! Szükséged lesz rájuk a Fejlesztésekhez. - Próbáld megdönteni a 20. Szintet, mielőtt segítséget kérnél! - Ne bonyolítsd túl a dolgokat; csináld egyszerűen és sokra viheted. @@ -1052,16 +1179,17 @@ tips: - Színezd be az alakzatodat vágás előtt a maximális hatékonyság érdekében. - Ha modulárisan építkezel, akkor nem számít a hely. - Csinálj egy különálló Tervrajz-gyárat. A modulokhoz később hasznos lesz. - - A <b>CTRL</b> + balklikkel jelölhetsz ki egy területet a pályán. + - You may need to reuse factories later in the game. Build your factories to + be reusable. - Ha közel építesz a Központhoz, útban lesz a következő projektjeidnek. - A Fejlesztések lapon a gombostű ikon megnyomásával kitűzheted a képernyőre az aktuális alakzatot. - Keverd össze mind a három alapszínt, hogy Fehéret csinálj! - - A pálya végtelen méretű; ne nyomorgasd sösze a gyáraidat, terjeszkedj! + - A pálya végtelen méretű; ne nyomorgasd össze a gyáraidat, terjeszkedj! - Próbáld ki a Factorio-t is! Az a kedvenc játékom. - A Negyedelő az alakzat jobb felső negyedétől kezd vágni, az óramutató járásával megegyező irányban! - - A játékmentéseidet a Főmenüben tudod lementeni! + - Use <b>CTRL</b> + Click to select an area. - A játék nagyon sok hasznos gyorsbillentyűt tartalmaz! Nézd meg őket a Beállítások menüben. - A játék nagyon sok beállítást tartalmaz, mindenképpen nézd meg őket! @@ -1070,3 +1198,97 @@ tips: ugyanarra a helyre. - Az F4 megnyomásával láthatod az FPS-edet és a Tick/mp értéket. - Nyomd meg az F4-et kétszer, hogy arra a csempére ugorj, ahol az egered van. + - You can download your savegames in the main menu! + - This game has a lot of useful keybindings! Be sure to check out the + settings page. + - This game has a lot of settings, be sure to check them out! + - Your hub marker has a small compass that shows which direction it is in! + - To clear belts, cut the area and then paste it at the same location. + - You can click a pinned shape on the left side to unpin it. + - Press F4 twice to show the tile of your mouse and camera. + - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Játék + edit: Szerkesztés + title: Fejtörő Mód + createPuzzle: Új Fejtörő + loadPuzzle: Betöltés + reviewPuzzle: Beküldés & Publikálás + validatingPuzzle: Fejtörő Validálása + submittingPuzzle: Fejtörő Beküldése + noPuzzles: Jelenleg nincs fejtörő ebben a szekcióban. + categories: + levels: Szintek + new: Új + top-rated: Legjobbra Értékelt + mine: Az Én Fejtörőim + easy: Könnyű + hard: Nehéz + completed: Teljesítve + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Hibás Fejtörő + noProducers: Helyezz le egy Termelőt! + noGoalAcceptors: Helyezz le egy Elfogadót! + goalAcceptorNoItem: Egy vagy több Elfogadónál nincs beállítva célként alakzat. + Szállíts le egy alazkatot a cél beállításához. + goalAcceptorRateNotMet: Egy vagy több Elfogadó nem kap elegendő alakzatot. + Győződj meg róla, hogy a jelölő minden Elfogadónál zölden világít. + buildingOutOfBounds: Egy vagy több épület kívül esik a beépíthető területen. + Növeld meg a terület méretét, vagy távolíts el épületeket. + autoComplete: A fejtörő automatikusan megoldja magát! Győződj meg róla, hogy a + Termelők nem közvetlenül az Elfogadóba termelnek. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Túl gyorsan csinálsz dolgokat. Kérlek, várj egy kicsit. + invalid-api-key: Valami nem oké a játékkal. Próbáld meg frissíteni vagy + újraindítani. (HIBA - Invalid Api Key). + unauthorized: Valami nem oké a játékkal. Próbáld meg frissíteni vagy + újraindítani. (HIBA - Unauthorized). + bad-token: Valami nem oké a játékkal. Próbáld meg frissíteni vagy újraindítani. + (HIBA - Bad Token). + bad-id: Helytelen Fejtörő azonosító. + not-found: A megadott fejtörőt nem találjuk. + bad-category: A megadott kategóriát nem találjuk. + bad-short-key: A megadott gyorskód helytelen. + profane-title: A fejtörő címe csúnya szavakat tartalmaz. + bad-title-too-many-spaces: A fejtörő címe túl rövid. + bad-shape-key-in-emitter: Egy Termelőnek helytelen alakzat van beállítva. + bad-shape-key-in-goal: Egy Elfogadónak helytelen alakzat van beállítva. + no-emitters: A fejtörődben nem szerepel Termelő. + no-goals: A fejtörődben nem szerepel Elfogadó. + short-key-already-taken: Ez a gyorskód már foglalt, kérlek válassz másikat. + can-not-report-your-own-puzzle: Nem jelentheted a saját fejtörődet. + bad-payload: A kérés helytelen adatot tartalmaz. + bad-building-placement: A fejtörőd helytelenül lehelyezett épületeket tartalmaz. + timeout: A kérés időtúllépésbe került. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-ind.yaml b/translations/base-ind.yaml index 8211a34f..591c39e7 100644 --- a/translations/base-ind.yaml +++ b/translations/base-ind.yaml @@ -1,55 +1,28 @@ steamPage: shortText: shapez.io adalah game tentang membangun pabrik untuk mengotomatiskan - pembuatan dan pemrosesan bentuk-bentuk yang semakin lama semakin kompleks - di dalam peta yang meluas tanpa batas. + pembuatan dan pemrosesan bentuk-bentuk yang semakin lama semakin + kompleks di dalam peta yang meluas tanpa batas. discordLinkShort: Server Discord Resmi intro: >- Kamu suka game otomasi? Maka kamu berada di tempat yang tepat! - shapez.io adalah game santai dimana kamu harus membuat pabrik untuk mengotomatiskan produksi bentuk-bentuk geometris. Semakin meningkatnya level, bentuk-bentuknya menjadi lebih kompleks, - dan kamu perlu meluaskan pabrikmu semakin jauh lagi. + shapez.io adalah game santai dimana kamu harus membuat pabrik untuk mengotomatiskan produksi bentuk-bentuk geometris. Semakin meningkatnya level, bentuk-bentuknya menjadi lebih kompleks, dan kamu perlu meluaskan pabrikmu semakin jauh lagi. - Dan jita itu tidak cukup, kamu juga perlu memproduksi bentuk secara eksponensial untuk memenuhkan kebutuhan - hal yang membantu hanyalah memperbesar pabrik! Walaupun kamu hanya perlu - memproses bentuk di awal, nantinya kamu harus memberinya warna - dengan mengekstrak dan mencampur warna! + Dan jita itu tidak cukup, kamu juga perlu memproduksi bentuk secara eksponensial untuk memenuhkan kebutuhan - hal yang membantu hanyalah memperbesar pabrik! Walaupun kamu hanya perlu memproses bentuk di awal, nantinya kamu harus memberinya warna - dengan mengekstrak dan mencampur warna! Membeli game ini di Steam memberikan kamu akses ke versi lengkap, namun kamu juga dapat mencoba demo dan memutuskan nanti! - title_advantages: Keuntungan Versi Lengkap - advantages: - - <b>12 Level Baru</b> dengan total 26 level - - <b>18 Bangunan Baru</b> untuk membuat pabrik yang otomatis sepenuhnya! - - <b>20 Tingkatan Upgrade</b> untuk keseruan berjam-jam! - - <b>Update Kabel</b> untuk dimensi yang benar-benar baru! - - <b>Mode Gelap</b>! - - Data Simpanan Tidak Terbatas - - Penanda Tidak Terbatas - - Dukung saya! ❤️ - title_future: Konten Terencana - planned: - - Perpustakaan Cetak Biru (Eksklusif Versi Lengkap) - - Achievement Steam - - Mode Puzzle - - Peta Kecil - - Modifikasi - - Mode Sandbox - - ... dan masih banyak lagi! - title_open_source: Game ini open source! - title_links: Tautan (Links) - links: - discord: Server Discord Resmi - roadmap: Peta Jalan - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Bantu menterjemahkan - text_open_source: >- - Semua orang bisa berpartisipasi, saya aktif terlibat dalam komunitas dan - mencoba untuk meninjau semua saran dan mempertimbangkan segala umpan - balik jika memungkinkan. - - Pastikan untuk memeriksa papan trello saya untuk peta jalan selengkapnya! + what_others_say: Apa yang orang lain katakan tentang shapez.io + nothernlion_comment: Game ini bagus - Saya sangat menikmati waktu saya ketika + memainkan game ini, dan waktu telah berlalu. + notch_comment: Oh sial. Saya benar-benar harus tidur, namun sepertinya saya baru + menemukan bagaimana cara membuat komputer di shapez.io + steam_review_comment: Game ini telah mencuri hidup saya dan saya tidak + menginginkannya kembali. Game pembuatan pabrik yang sangat santai yang + tidak akan membiarkan saya berhenti membuat pabrik saya lebih efisien. global: loading: Memuat error: Terjadi kesalahan - thousandsDivider: "." + thousandsDivider: . decimalSeparator: "," suffix: thousands: rb @@ -77,6 +50,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: Versi Demo intro: Dapatkan versi lengkap untuk membuka semua fitur! @@ -91,12 +65,17 @@ mainMenu: discordLink: Server Discord Resmi helpTranslate: Bantu Terjemahkan! madeBy: Dibuat oleh <author-link> - browserWarning: Maaf, tetapi permainan ini biasanya lambat pada - browser kamu! Dapatkan versi lengkap atau unduh Chrome untuk - pengalaman sepenuhnya. + browserWarning: Maaf, tetapi permainan ini biasanya lambat pada browser kamu! + Dapatkan versi lengkap atau unduh Chrome untuk pengalaman sepenuhnya. savegameLevel: Level <x> savegameLevelUnknown: Level tidak diketahui savegameUnnamed: Tidak Dinamai + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -110,6 +89,9 @@ dialogs: viewUpdate: Tampilkan Update showUpgrades: Tunjukkan Tingkatan showKeybindings: Tunjukkan Tombol Pintas + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Kesalahan pada Impor text: "Gagal memasukkan data simpanan kamu:" @@ -131,8 +113,8 @@ dialogs: text: kamu harus memulai kembali permainan untuk menerapkan pengaturan. editKeybinding: title: Ganti Tombol Pintas (Keybinding) - desc: Tekan tombol pada keyboard atau mouse yang ingin kamu ganti, atau - tekan escape untuk membatalkan. + desc: Tekan tombol pada keyboard atau mouse yang ingin kamu ganti, atau tekan + escape untuk membatalkan. resetKeybindingsConfirmation: title: Setel Ulang Tombol-tombol Pintas (Keybinding) desc: Ini akan menyetel ulang semua tombol pintas kepada pengaturan awalnya. @@ -147,8 +129,8 @@ dialogs: pengalaman sepenuhnya! oneSavegameLimit: title: Penyimpanan Permainan Terbatas - desc: Kamu hanya dapat memiliki satu data simpanan dalam versi demo. Harap - hapus yang telah ada atau dapatkan versi lengkap! + desc: Kamu hanya dapat memiliki satu data simpanan dalam versi demo. Harap hapus + yang telah ada atau dapatkan versi lengkap! updateSummary: title: Update Baru! desc: "Berikut perubahan-perubahan yang telah dibuat sejak kamu main terakhir @@ -164,8 +146,8 @@ dialogs: untuk melakukannya? massCutConfirm: title: Konfirmasi Pemindahan (Cut) - desc: Kamu akan memindahkan (cut) banyak bangunan (tepatnya <count>)! Apakah kamu - yakin untuk melakukannya? + desc: Kamu akan memindahkan (cut) banyak bangunan (tepatnya <count>)! Apakah + kamu yakin untuk melakukannya? massCutInsufficientConfirm: title: Tidak Mampu Memindahkan desc: Kamu tidak mampu menanggung biaya pemindahan area ini! Apakah kamu yakin @@ -194,24 +176,89 @@ dialogs: lengkap untuk penanda-penanda tak terbatas! exportScreenshotWarning: title: Ekspor Screenshot - desc: Kamu meminta untuk mengekspor pabrikmu sebagai screenshot. - Harap ketahui bahwa ini bisa menjadi lambat untuk pabrik - yang besar dan bahkan dapat membuat permainanmu berhenti! + desc: Kamu meminta untuk mengekspor pabrikmu sebagai screenshot. Harap ketahui + bahwa ini bisa menjadi lambat untuk pabrik yang besar dan bahkan + dapat membuat permainanmu berhenti! editSignal: title: Atur Tanda descItems: "Pilih item yang telah ditentukan sebelumnya:" - descShortKey: ... atau masukkan <strong>shortkey</strong> dari bentuk (Yang - bisa kamu buat sendiri <link>disini</link>) + descShortKey: ... atau masukkan <strong>shortkey</strong> dari bentuk (Yang bisa + kamu buat sendiri <link>disini</link>) renameSavegame: title: Ganti Nama Data Simpanan desc: Kamu bisa mengganti nama data simpanan di sini. tutorialVideoAvailable: title: Tutorial Tersedia - desc: Ada video tutorial yang tersedia untuk level ini! Apakah kamu ingin menontonnya? + desc: Ada video tutorial yang tersedia untuk level ini! Apakah kamu ingin + menontonnya? tutorialVideoAvailableForeignLanguage: title: Tutorial Tersedia - desc: Ada video tutorial yang tersedia untuk level ini, tetapi hanya dalam Bahasa Inggris. - Apakah kamu ingin menontonnya? + desc: Ada video tutorial yang tersedia untuk level ini, tetapi hanya dalam + Bahasa Inggris. Apakah kamu ingin menontonnya? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Geser @@ -233,6 +280,7 @@ ingame: clearSelection: Hapus pilihan pipette: Pipet switchLayers: Ganti lapisan + clearBelts: Clear belts colors: red: Merah green: Hijau @@ -276,8 +324,8 @@ ingame: description: Menunjukan semua bentuk yang tersimpan pada bangunan pusatmu. produced: title: Terproduksi - description: Menunjukkan semua bentuk yang diproduksi pabrikmu, - termasuk produk-produk antara. + description: Menunjukkan semua bentuk yang diproduksi pabrikmu, termasuk + produk-produk antara. delivered: title: Terkirim description: Menunjukkan bentuk-bentuk yang sedang dikirim ke bangunan pusatmu. @@ -315,37 +363,40 @@ ingame: 1_1_extractor: Letakkan <strong>ekstraktor</strong> diatas <strong>bentuk lingkaran</strong> untuk mengekstrak bentuk tersebut! 1_2_conveyor: "Hubungkan ekstraktor dengan <strong>sabuk konveyor</strong> ke - bangunan pusatmu!<br><br>Tip: <strong>Klik dan - seret</strong> sabuk konveyor dengan mouse!" + bangunan pusatmu!<br><br>Tip: <strong>Klik dan seret</strong> + sabuk konveyor dengan mouse!" 1_3_expand: "Ini <strong>BUKAN</strong> permainan menganggur! Bangun lebih banyak ekstraktor dan sabuk konveyor untuk menyelesaikan objektif dengan lebih cepat. <br><br>Tip: Tahan tombol - <strong>SHIFT</strong> untuk meletakkan beberapa ekstraktor sekaligus, dan - gunakan tombol <strong>R</strong> untuk memutar." - 2_1_place_cutter: "Sekarang letakkan <strong>Pemotong</strong> untuk memotong lingkaran - menjadi 2 bagian!<br><br> NB: Pemotong akan selalu memotong dari <strong>atas ke - bawah</strong> apapun orientasinya." - 2_2_place_trash: Pemotong dapat <strong>tersumbat dan macet</strong>!<br><br> Gunakan - <strong>tong sampah</strong> untuk membuang sisa (!) yang saat ini tidak diperlukan. - 2_3_more_cutters: - "Kerja yang bagus! Sekarang letakkan <strong>2 pemotong lagi</strong> untuk mempercepat - proses ini!<br><br> NB: Gunakan <strong>tombol 0-9 - </strong> untuk mengakses bangunan lebih cepat!" + <strong>SHIFT</strong> untuk meletakkan beberapa ekstraktor + sekaligus, dan gunakan tombol <strong>R</strong> untuk memutar." + 2_1_place_cutter: "Sekarang letakkan <strong>Pemotong</strong> untuk memotong + lingkaran menjadi 2 bagian!<br><br> NB: Pemotong akan selalu + memotong dari <strong>atas ke bawah</strong> apapun + orientasinya." + 2_2_place_trash: Pemotong dapat <strong>tersumbat dan macet</strong>!<br><br> + Gunakan <strong>tong sampah</strong> untuk membuang sisa (!) + yang saat ini tidak diperlukan. + 2_3_more_cutters: "Kerja yang bagus! Sekarang letakkan <strong>2 pemotong + lagi</strong> untuk mempercepat proses ini!<br><br> NB: Gunakan + <strong>tombol 0-9 </strong> untuk mengakses bangunan lebih + cepat!" 3_1_rectangles: "Sekarang ekstrak beberapa persegi! <strong>Bangun 4 - ekstraktor</strong> dan hubungkan mereka ke bangunan pusat.<br><br> NB: - Tahan <strong>SHIFT</strong> saat meletakkan konveyor untuk mengaktifkan - perencana sabuk konveyor!" - 21_1_place_quad_painter: Letakkan <strong>pemotong empat bagian</strong> dan ekstrak beberapa - <strong>lingkaran</strong>, warna <strong>putih</strong> dan - <strong>merah</strong>! + ekstraktor</strong> dan hubungkan mereka ke bangunan + pusat.<br><br> NB: Tahan <strong>SHIFT</strong> saat meletakkan + konveyor untuk mengaktifkan perencana sabuk konveyor!" + 21_1_place_quad_painter: Letakkan <strong>pemotong empat bagian</strong> dan + ekstrak beberapa <strong>lingkaran</strong>, warna + <strong>putih</strong> dan <strong>merah</strong>! 21_2_switch_to_wires: Pindah ke lapisan kabel dengan menekan tombol <strong>E</strong>!<br><br> Lalu <strong>hubungkan keempat input</strong> dari pengecat dengan menggunakan kabel! - 21_3_place_button: Mantap! Sekarang letakkan <strong>saklar</strong> dan hubungkan - dengan menggunakan kabel! + 21_3_place_button: Mantap! Sekarang letakkan <strong>saklar</strong> dan + hubungkan dengan menggunakan kabel! 21_4_press_button: "Tekan saklar untuk <strong>memancarkan sinyal yang - benar</strong> dan mengaktifkan pengecat.<br><br> NB: Kamu - tidak perlu menghubungkan semua input! Cobalah hanya menghubungkan dua." + benar</strong> dan mengaktifkan pengecat.<br><br> NB: Kamu tidak + perlu menghubungkan semua input! Cobalah hanya menghubungkan + dua." connectedMiners: one_miner: 1 Ekstraktor n_miners: <amount> Ekstraktor @@ -364,9 +415,6 @@ ingame: buildings: title: 18 Bangunan Baru desc: Untuk membuat pabrik yang otomatis sepenuhnya! - savegames: - title: ∞ Data Simpanan - desc: Sebanyak yang kamu mau! upgrades: title: ∞ Tingkatan Upgrade desc: Versi demo ini hanya punya 5! @@ -382,6 +430,50 @@ ingame: support: title: Dukung saya desc: Saya membuat game ini di waktu luang! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Sabuk konveyor, Pembagi Arus & Terowongan @@ -404,7 +496,8 @@ buildings: belt: default: name: Sabuk Konveyor - description: Mengangkut sumber daya, tahan dan seret untuk meletakkan beberapa sekaligus. + description: Mengangkut sumber daya, tahan dan seret untuk meletakkan beberapa + sekaligus. wire: default: name: Kabel @@ -506,7 +599,8 @@ buildings: default: name: Tempat Penyimpanan description: Menyimpan bentuk yang berlebihan, hingga kapasitas tertentu. - Memprioritaskan output dari kiri dan dapat digunakan sebagai gerbang luapan. + Memprioritaskan output dari kiri dan dapat digunakan sebagai + gerbang luapan. wire_tunnel: default: name: Terowongan Kabel @@ -520,8 +614,8 @@ buildings: default: name: Saklar description: Dapat digunakan untuk mengeluarkan sinyal boolean (1 atau 0) pada - lapisan kabel, yang bisa digunakan untuk mengontrol komponen, seperti - filter item. + lapisan kabel, yang bisa digunakan untuk mengontrol komponen, + seperti filter item. logic_gate: default: name: Gerbang AND @@ -533,8 +627,9 @@ buildings: berarti sebuah bentuk, warna atau boolean "1") xor: name: Gerbang XOR - description: Mengeluarkan boolean "1" jika salah satu input adalah benar, namun bukan - keduanya. (Benar berarti sebuah bentuk, warna atau boolean "1") + description: Mengeluarkan boolean "1" jika salah satu input adalah benar, namun + bukan keduanya. (Benar berarti sebuah bentuk, warna atau boolean + "1") or: name: Gerbang OR description: Mengeluarkan boolean "1" jika satu input adalah benar. (Benar @@ -557,8 +652,8 @@ buildings: display: default: name: Layar - description: Hubungkan sebuah sinyal untuk ditunjukkan pada layar - Dapat - berupa bentuk, warna atau boolean. + description: Hubungkan sebuah sinyal untuk ditunjukkan pada layar - Dapat berupa + bentuk, warna atau boolean. reader: default: name: Pembaca Sabuk Konveyor @@ -568,8 +663,8 @@ buildings: analyzer: default: name: Penganalisa bentuk - description: Menganalisa bentuk bagian kanan atas pada lapisan paling bawah - lalu mengeluarkan bentuk dan warnanya. + description: Menganalisa bentuk bagian kanan atas pada lapisan paling bawah lalu + mengeluarkan bentuk dan warnanya. comparator: default: name: Pembanding @@ -584,49 +679,63 @@ buildings: description: Memutar bentuk searah jarum jam secara virtual. unstacker: name: Pemisah Tumpukan Virtual - description: Memisahkan lapisan paling atas ke output kanan dan - sisanya ke output kiri secara virtual. + description: Memisahkan lapisan paling atas ke output kanan dan sisanya ke + output kiri secara virtual. stacker: name: Penumpuk Virtual description: Menumpuk bentuk kanan ke bentuk kiri secara virtual. painter: name: Pengecat Virtual - description: Mengecat bentuk dari input bawah dengan warna dari input kanan secara virtual. + description: Mengecat bentuk dari input bawah dengan warna dari input kanan + secara virtual. item_producer: default: name: Pembuat Bentuk description: Hanya tersedia di dalam mode sandbox, mengeluarkan sinyal yang diberikan dari lapisan kabel ke lapisan biasa. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Memotong Bentuk desc: <strong>Pemotong</strong> telah dibuka, yang dapat memotong bentuk menjadi dua secara vertikal <strong>apapun orientasinya</strong>!<br><br>Pastikan untuk membuang sisanya, jika - tidak <strong>ini dapat tersumbat dan macet</strong> - - Oleh karena itu kamu diberikan <strong>tong sampah</strong>, yang - menghapus semua yang kamu masukkan! + tidak <strong>ini dapat tersumbat dan macet</strong> - Oleh karena + itu kamu diberikan <strong>tong sampah</strong>, yang menghapus + semua yang kamu masukkan! reward_rotater: title: Memutar desc: <strong>Pemutar</strong> telah dibuka! Ia memutar bentuk-bentuk searah jarum jam sebesar 90 derajat. reward_painter: title: Mengecat - desc: "<strong>Pengecat</strong> telah dibuka – Ekstrak beberapa warna - (seperti yang kamu lakukan dengan bentuk) dan kemudian kombinasikan - dengan bentuk di dalam pengecat untuk mewarnai mereka!<br><br> - NB: Apabila kamu buta warna, terdapat <strong>mode buta - warna</strong> di dalam pengaturan!" + desc: "<strong>Pengecat</strong> telah dibuka – Ekstrak beberapa warna (seperti + yang kamu lakukan dengan bentuk) dan kemudian kombinasikan dengan + bentuk di dalam pengecat untuk mewarnai mereka!<br><br> NB: Apabila + kamu buta warna, terdapat <strong>mode buta warna</strong> di dalam + pengaturan!" reward_mixer: title: Mencampur Warna - desc: <strong>Pencampur Warna</strong> telah dibuka – Bangunan ini mencampur dua warna menjadi satu! + desc: The <strong>mixer</strong> has been unlocked - It mixes two colors using + <strong>additive blending</strong>! reward_stacker: title: Penumpuk desc: Kamu sekarang dapat mengombinasikan bentuk-bentuk dengan <strong>penumpuk</strong>! Kedua input akan dikombinasikan, dan apabila mereka dapat diletakan disebelah satu sama lain, mereka - akan <strong>terpadukan</strong>. Apabila tidak bisa, maka input kanan - akan <strong>diletakkan diatas</strong> input kiri! + akan <strong>terpadukan</strong>. Apabila tidak bisa, maka input + kanan akan <strong>diletakkan diatas</strong> input kiri! reward_splitter: title: Pembagi Kompak desc: Kamu telah membuka varian <strong>pembagi</strong> dari @@ -639,38 +748,40 @@ storyRewards: bangungan-bangunan dengannya! reward_rotater_ccw: title: Memutar Berlawanan Arah Jarum Jam - desc: Kamu telah membuka varian dari <strong>Pemutar</strong> - Bangunan ini memungkinkan - kamu untuk memutar bentuk-bentuk berlawanan arah jarum jam! Untuk - membangunnya, pilih pemutar dan <strong>tekan 'T' to memilih - varian</strong>! + desc: Kamu telah membuka varian dari <strong>Pemutar</strong> - Bangunan ini + memungkinkan kamu untuk memutar bentuk-bentuk berlawanan arah jarum + jam! Untuk membangunnya, pilih pemutar dan <strong>tekan 'T' to + memilih varian</strong>! reward_miner_chainable: title: Ekstraktor Merantai - desc: "Kamu telah membuka <strong>Ekstraktor (Berantai)</strong>! Bangunan ini dapat - <strong>mengoper sumber daya</strong> ke ekstraktor depannya + desc: "Kamu telah membuka <strong>Ekstraktor (Berantai)</strong>! Bangunan ini + dapat <strong>mengoper sumber daya</strong> ke ekstraktor depannya sehingga kamu dapat mengekstrak sumber daya dengan lebih efisien!<br><br> NB: Ekstraktor yang lama sudah diganti pada toolbar kamu sekarang!" reward_underground_belt_tier_2: title: Terowongan Tingkat II - desc: Kamu telah membuka varian baru <strong>terowongan</strong> - Bangunan ini memiliki - <strong>jangkauan yang lebih panjang</strong>, dan sekarang kamu - juga dapat memadukan terowongan-terowongan tersebut! + desc: Kamu telah membuka varian baru <strong>terowongan</strong> - Bangunan ini + memiliki <strong>jangkauan yang lebih panjang</strong>, dan sekarang + kamu juga dapat memadukan terowongan-terowongan tersebut! reward_cutter_quad: title: Pemotongan Empat Bagian - desc: Kamu telah membuka varian dari <strong>pemotong</strong> - Bangunan ini memungkinkan - kamu untuk memotong bentuk-bentuk menjadi <strong>empat bagian</strong> - daripada hanya dua bagian! + desc: Kamu telah membuka varian dari <strong>pemotong</strong> - Bangunan ini + memungkinkan kamu untuk memotong bentuk-bentuk menjadi <strong>empat + bagian</strong> daripada hanya dua bagian! reward_painter_double: title: Pengecatan Ganda - desc: Kamu telah membuka varian dari <strong>pengecat</strong> - Bangunan ini bekerja - seperti pengecat biasa namun dapat memproses <strong>dua bentuk - sekaligus</strong>, dan mengonsumsi hanya satu warna daripada dua! + desc: Kamu telah membuka varian dari <strong>pengecat</strong> - Bangunan ini + bekerja seperti pengecat biasa namun dapat memproses <strong>dua + bentuk sekaligus</strong>, dan mengonsumsi hanya satu warna daripada + dua! reward_storage: title: Tempat Penyimpanan - desc: Kamu telah membuka <strong>Tempat Penyimpanan</strong> - Bangunan ini memungkinkan - kamu untuk menyimpan item hingga kapasitas tertentu!<br><br> Bangunan ini - mengutamakan output kiri, sehingga kamu dapat menggunakannya sebagai - <strong>gerbang luapan (overflow gate)</strong>! + desc: Kamu telah membuka <strong>Tempat Penyimpanan</strong> - Bangunan ini + memungkinkan kamu untuk menyimpan item hingga kapasitas + tertentu!<br><br> Bangunan ini mengutamakan output kiri, sehingga + kamu dapat menggunakannya sebagai <strong>gerbang luapan (overflow + gate)</strong>! reward_freeplay: title: Permainan Bebas desc: Kamu berhasil! Kamu telah membuka <strong>mode permainan bebas</strong>! @@ -678,22 +789,22 @@ storyRewards: <strong>acak</strong>!<br><br> Karena bangunan pusat akan membutuhkan <strong>penghasilan</strong> dari sekarang, Saya sangat menyarankan untuk membangun mesin yang secara otomatis mengirim - bentuk yang diminta!<br><br> Bangunan pusat mengeluarkan bentuk - yang diminta pada lapisan kabel, jadi yang harus kamu lakukan adalah + bentuk yang diminta!<br><br> Bangunan pusat mengeluarkan bentuk yang + diminta pada lapisan kabel, jadi yang harus kamu lakukan adalah menganalisa dan membangun pabrik secara otomatis berdasarkan itu. reward_blueprints: title: Cetak Biru - desc: Kamu sekarang dapat <strong>menyalin (copy) dan menempel (paste)</strong> bagian dari - pabrikmu! Pilih sebuah area (tahan CTRL, lalu seret dengan - mouse), dan tekan 'C' untuk menyalinnya.<br><br>Untuk + desc: Kamu sekarang dapat <strong>menyalin (copy) dan menempel (paste)</strong> + bagian dari pabrikmu! Pilih sebuah area (tahan CTRL, lalu seret + dengan mouse), dan tekan 'C' untuk menyalinnya.<br><br>Untuk menempelnya <strong>tidak gratis</strong>, Kamu harus memproduksi <strong>bentuk cetak biru</strong> untuk dapat melakukannya! (Bentuk yang baru saja kamu kirim). no_reward: title: Level Selanjutnya desc: "Level ini tidak memiliki hadiah, namun yang selanjutnya akan! <br><br> - NB: Sebaiknya kamu jangan hancurkan pabrik yang telah ada – - Kamu akan membutuhkan <strong>semua</strong> bentuk-bentuk tersebut lagi + NB: Sebaiknya kamu jangan hancurkan pabrik yang telah ada – Kamu + akan membutuhkan <strong>semua</strong> bentuk-bentuk tersebut lagi nanti untuk <strong>membuka tingkatan-tingkatan selanjutnya</strong>!" no_reward_freeplay: @@ -702,9 +813,10 @@ storyRewards: lengkap! reward_balancer: title: Penyeimbang - desc: <strong>Penyeimbang</strong> multifungsional telah terbuka - Bangunan ini dapat - digunakan untuk membuat pabrik yang lebih besar lagi dengan <strong>memisahkan - dan menggabungkan item</strong> ke beberapa sabuk konveyor! + desc: <strong>Penyeimbang</strong> multifungsional telah terbuka - Bangunan ini + dapat digunakan untuk membuat pabrik yang lebih besar lagi dengan + <strong>memisahkan dan menggabungkan item</strong> ke beberapa sabuk + konveyor! reward_merger: title: Penggabung Kompak desc: Kamu telah membuka varian<strong>penggabung</strong> dari @@ -714,8 +826,8 @@ storyRewards: title: Pembaca Sabuk Konveyor desc: Kamu telah membuka <strong>pembaca sabuk konveyor</strong>! Bangunan ini memungkinkan kamu untuk mengukur penghasilan dalam sebuah sabuk - konveyor.<br><br> Dan tunggu sampai kamu membuka kabel - maka bangunan ini - akan sangat berguna! + konveyor.<br><br> Dan tunggu sampai kamu membuka kabel - maka + bangunan ini akan sangat berguna! reward_rotater_180: title: Pemutar (180 derajat) desc: Kamu telah membuka <strong>pemutar</strong> 180 derajat! - Bangunan ini @@ -730,41 +842,46 @@ storyRewards: reward_constant_signal: title: Sinyal Konstan desc: Kamu telah membuka bangunan <strong>sinyal konstan</strong> pada lapisan - kabel! Bangunan ini berguna untuk menyambungkannya ke <strong>filter item</strong> - contohnya.<br><br> Sinyal konstannya dapat memancarkan + kabel! Bangunan ini berguna untuk menyambungkannya ke <strong>filter + item</strong> contohnya.<br><br> Sinyal konstannya dapat memancarkan <strong>bentuk</strong>, <strong>warna</strong> atau <strong>boolean</strong> (1 atau 0). reward_logic_gates: title: Gerbang Logis - desc: Kamu telah membuka <strong>gerbang logis</strong>! Kamu tidak perlu bersemangat - tentang ini, tetapi sebenarnya ini sangat keren!<br><br> Dengan gerbang-gerbang tersebut - kamu sekarang dapat mengkalkulasi operasi AND, OR, XOR dan NOT.<br><br> Sebagai bonus - kamu juga telah mendapatkan <strong>transistor</strong>! + desc: Kamu telah membuka <strong>gerbang logis</strong>! Kamu tidak perlu + bersemangat tentang ini, tetapi sebenarnya ini sangat keren!<br><br> + Dengan gerbang-gerbang tersebut kamu sekarang dapat mengkalkulasi + operasi AND, OR, XOR dan NOT.<br><br> Sebagai bonus kamu juga telah + mendapatkan <strong>transistor</strong>! reward_virtual_processing: title: Prosesi Virtual desc: Kamu baru saja mendapatkan banyak bangunan yang memungkinkan kamu untuk - <strong>menstimulasi prosesi pembuatan bentuk</strong>!<br><br> Kamu sekarang - dapat menstimulasi pemotongan, pemutaran, penumpukan dan masih banyak lagi pada lapisan kabel! - Dengan ini kamu sekarang memiliki tiga opsi untuk melanjutkan permainan:<br><br> - - Membuat sebuah <strong>mesin otomatis</strong> untuk membuat segala bentuk - yang diminta oleh PUSAT (Saya sarankan kamu untuk mencobanya!).<br><br> - Membuat - sesuatu yang keren dengan kabel.<br><br> - Melanjutkan permainan seperti - biasa.<br><br> Apapun yang kamu pilih, ingatlah untuk bersenang-senang! + <strong>menstimulasi prosesi pembuatan bentuk</strong>!<br><br> Kamu + sekarang dapat menstimulasi pemotongan, pemutaran, penumpukan dan + masih banyak lagi pada lapisan kabel! Dengan ini kamu sekarang + memiliki tiga opsi untuk melanjutkan permainan:<br><br> - Membuat + sebuah <strong>mesin otomatis</strong> untuk membuat segala bentuk + yang diminta oleh PUSAT (Saya sarankan kamu untuk + mencobanya!).<br><br> - Membuat sesuatu yang keren dengan + kabel.<br><br> - Melanjutkan permainan seperti biasa.<br><br> Apapun + yang kamu pilih, ingatlah untuk bersenang-senang! reward_wires_painter_and_levers: title: Kabel & Pengecat (Empat Bagian) desc: "Kamu baru saja membuka <strong>Lapisan Kabel</strong>: Ini adalah sebuah - lapisan terpisah diatas lapisan biasa dan memperkenalkan banyak mekanisme - baru!<br><br> Untuk permulaan kamu telah membuka <strong>Pengecat (Empat - Bagian)</strong> - Hubungkan slot yang ingin kamu cat pada - lapisan kabel!<br><br> Untuk mengubah ke lapisan kabel, tekan tombol - <strong>E</strong>. <br><br> NB: <strong>Nyalakan petunjuk</strong> di - pengaturan untuk mengaktifkan tutorial kabel!" + lapisan terpisah diatas lapisan biasa dan memperkenalkan banyak + mekanisme baru!<br><br> Untuk permulaan kamu telah membuka + <strong>Pengecat (Empat Bagian)</strong> - Hubungkan slot yang ingin + kamu cat pada lapisan kabel!<br><br> Untuk mengubah ke lapisan + kabel, tekan tombol <strong>E</strong>. <br><br> NB: + <strong>Nyalakan petunjuk</strong> di pengaturan untuk mengaktifkan + tutorial kabel!" reward_filter: title: Filter Item - desc: Kamu telah membuka <strong>Filter</strong>! Bangunan ini akan mengarahkan item baik - ke output atas atau output kanan tergantung apakah mereka cocok dengan - sinyal dari lapisan kabel atau tidak.<br><br> Kamu juga bisa memasukkan - sinyal boolean (1 atau 0) untuk mengaktifkan atau menonaktifkannya. + desc: Kamu telah membuka <strong>Filter</strong>! Bangunan ini akan mengarahkan + item baik ke output atas atau output kanan tergantung apakah mereka + cocok dengan sinyal dari lapisan kabel atau tidak.<br><br> Kamu juga + bisa memasukkan sinyal boolean (1 atau 0) untuk mengaktifkan atau + menonaktifkannya. reward_demo_end: title: Akhir dari Demo desc: Kamu telah mencapai akhir dari versi demo! @@ -784,8 +901,8 @@ settings: uiScale: title: Skala Antarmuka (User Interface) description: Ganti ukuran antarmuka pengguna. Antarmuka tetap akan berskalakan - berdasar resolusi perangkatmu, tetapi pengaturan ini - mengontrol besar skala. + berdasar resolusi perangkatmu, tetapi pengaturan ini mengontrol + besar skala. scales: super_small: Sangat kecil small: Kecil @@ -805,8 +922,8 @@ settings: disabled: Dinonaktifkan scrollWheelSensitivity: title: Kepekaan Zoom - description: Mengubah seberapa peka zoom yang dilakukan (baik dengan roda - mouse atau trackpad). + description: Mengubah seberapa peka zoom yang dilakukan (baik dengan roda mouse + atau trackpad). sensitivity: super_slow: Sangat lambat slow: Lambat @@ -815,7 +932,8 @@ settings: super_fast: Sangat cepat movementSpeed: title: Kecepatan gerakan - description: Mengubah seberapa cepat pandangan bergerak ketika menggunakan keyboard atau mouse. + description: Mengubah seberapa cepat pandangan bergerak ketika menggunakan + keyboard atau mouse. speeds: super_slow: Sangat lambat slow: Lambat @@ -876,9 +994,9 @@ settings: membuat teks lebih mudah dibaca. rotationByBuilding: title: Pemutaran Masing-masing Tipe Bangunan - description: Setiap tipe bangunan mengingat putaran atau rotasi yang kamu tetapkan - kepadanya. Ini mungkin lebih nyaman apabila kamu sering berganti - untuk menempatkan berbagai tipe bangunan. + description: Setiap tipe bangunan mengingat putaran atau rotasi yang kamu + tetapkan kepadanya. Ini mungkin lebih nyaman apabila kamu sering + berganti untuk menempatkan berbagai tipe bangunan. compactBuildingInfo: title: Pemadatan Informasi Bangunan description: Memendekkan kotak-kotak informasi bangunan-bangunan dengan hanya @@ -896,46 +1014,56 @@ settings: description: Mengatur volume untuk musik lowQualityMapResources: title: Kualitas Peta Sumber Daya Rendah - description: - Menyederhanakan rendering sumber daya pada peta saat diperbesar untuk meningkatkan performa. - Bahkan terlihat lebih rapi, jadi pastikan untuk mencobanya! + description: Menyederhanakan rendering sumber daya pada peta saat diperbesar + untuk meningkatkan performa. Bahkan terlihat lebih rapi, jadi + pastikan untuk mencobanya! disableTileGrid: title: Nonaktifkan Grid - description: Menonaktifkan ubin grid dapat membantu performa. - Ini juga membuat game menjadi lebih rapi! + description: Menonaktifkan ubin grid dapat membantu performa. Ini juga membuat + game menjadi lebih rapi! clearCursorOnDeleteWhilePlacing: title: Menghapus Kursor dengan Klik Kanan - description: >- - Diaktifkan secara default, menghapus kursor setiap kali kamu mengklik kanan saat kamu memiliki bangunan yang dipilih untuk penempatan. Jika dinonaktifkan, kamu dapat menghapus - bangunan dengan mengklik kanan saat meletakkan bangunan. + description: Diaktifkan secara default, menghapus kursor setiap kali kamu + mengklik kanan saat kamu memiliki bangunan yang dipilih untuk + penempatan. Jika dinonaktifkan, kamu dapat menghapus bangunan + dengan mengklik kanan saat meletakkan bangunan. lowQualityTextures: title: Tekstur Kualitas Rendah (Jelek) - description: Menggunakan kualitas rendah untuk menyelamatkan performa. - Ini akan membuat penampilan game menjadi jelek! + description: Menggunakan kualitas rendah untuk menyelamatkan performa. Ini akan + membuat penampilan game menjadi jelek! displayChunkBorders: title: Tampilkan Batasan Chunk description: Game ini dibagi-bagi menjadi ubin 16x16 bagian, jika pengaturan ini diaktifkan maka batas dari tiap chunk akan diperlihatkan. pickMinerOnPatch: title: Memilih Ekstraktor pada Tampungan Sumber Daya - description: Diaktifkan secara default, memilih ekstraktor apabila kamu menggunakan pipet ketika - mengarahkan pada tampungan sumber daya. + description: Diaktifkan secara default, memilih ekstraktor apabila kamu + menggunakan pipet ketika mengarahkan pada tampungan sumber daya. simplifiedBelts: title: Sabuk Sederhana (Jelek) - description: Tidak merender item pada sabuk konveyor kecuali ketika mengarahkan ke konveyor - untuk menyelamatkan performa. Saya tidak merekomendasikan untuk bermain dengan pengaturan ini - jika kamu tidak benar-benar perlu performanya. + description: Tidak merender item pada sabuk konveyor kecuali ketika mengarahkan + ke konveyor untuk menyelamatkan performa. Saya tidak + merekomendasikan untuk bermain dengan pengaturan ini jika kamu + tidak benar-benar perlu performanya. enableMousePan: title: Bergeser pada Layar Tepi - description: Memungkinkan untuk memindahkan peta dengan menggerakkan kursor ke tepi layar. Kecepatannya tergantung pada pengaturan Kecepatan Gerakan. + description: Memungkinkan untuk memindahkan peta dengan menggerakkan kursor ke + tepi layar. Kecepatannya tergantung pada pengaturan Kecepatan + Gerakan. zoomToCursor: title: Zoom ke arah Kursor description: Jika dinyalakan maka zoom akan terjadi pada arah dan posisi kursor, sebaliknya zoom kana mengarah pada tengah layar. mapResourcesScale: title: Ukuran Sumber Daya Peta - description: Mengontrol ukuran bentuk-bentuk pada gambaran peta (ketika zoom out). + description: Mengontrol ukuran bentuk-bentuk pada gambaran peta (ketika zoom + out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Tombol Pintas hint: "Petunjuk: Pastikan kamu menggunakan CTRL, SHIFT and ALT! Mereka @@ -1009,6 +1137,15 @@ keybindings: comparator: Pembanding item_producer: Pembuat Item copyWireValue: "Kabel: Salin nilai di bawah kursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: Tentang permainan ini body: >- @@ -1022,8 +1159,7 @@ about: Lagunya dibuat oleh <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Dia mengagumkan.<br><br> - Akhir kata, banyak terima kasih kepada teman baik saya <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Tanpa sesi-sesi factorio kami, permainan ini tidak mungkin - tercipta. + Akhir kata, banyak terima kasih kepada teman baik saya <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Tanpa sesi-sesi factorio kami, permainan ini tidak mungkin tercipta. changelog: title: Catatan Perubahan demo: @@ -1039,55 +1175,166 @@ tips: - Pastikan pabrikmu berbentuk modul - akan membantu! - Jangan membangun terlalu dekat PUSAT, atau akan menjadi berantakan! - Apabila penumpukkan tidak bekerja, cobalah tukar kedua input. - - Kamu bisa mengubah arah Perencana Sabuk Konveyor dengan menekan tombol <b>R</b>. - - Menahan <b>CTRL</b> memungkinkan untuk menyeret sabuk konveyor tanpa rotasi otomatis. - - Rasio akan tetap sama, selama semua upgrade berada pada Tingkatan yang sama. + - Kamu bisa mengubah arah Perencana Sabuk Konveyor dengan menekan tombol + <b>R</b>. + - Menahan <b>CTRL</b> memungkinkan untuk menyeret sabuk konveyor tanpa + rotasi otomatis. + - Rasio akan tetap sama, selama semua upgrade berada pada Tingkatan yang + sama. - Eksekusi atau pembuatan secara serial lebih efisian daripada paralel. - Kamu akan membuka lebih banyak variasi bangunan nanti dalam game! - Kamu bisa menggunakan tombol <b>T</b> untuk berganti antara varian. - Simetri adalah kunci! - Kamu dapat memadukan dua varian terowongan dalam satu baris ubin. - Cobalah untuk membuat pabrik yang kompak dan padat - akan membantu! - - Pengecat memiliki varian lain yang bisa kamu pilih dengan menekan tombol <b>T</b> + - Pengecat memiliki varian lain yang bisa kamu pilih dengan menekan tombol + <b>T</b> - Memiliki rasio bangunan yang tepat dapat memaksimalkan efektivitas. - Pada level maksimum, 5 ekstraktor akan memenuhi 1 sabuk konveyor. - Jangan lupa gunakan terowongan! - - Kamu tidak perlu membagi item secara merata untuk meraih efisiensi maksimal. - - Menahan <b>SHIFT</b> akan mengaktifkan Perencana Sabuk Konveyor, memungkinkan kamu untuk meletakkan sabuk konveyor yang panjang dengan mudah + - Kamu tidak perlu membagi item secara merata untuk meraih efisiensi + maksimal. + - Menahan <b>SHIFT</b> akan mengaktifkan Perencana Sabuk Konveyor, + memungkinkan kamu untuk meletakkan sabuk konveyor yang panjang dengan + mudah - Pemotong selalu memotong secara vertikal, bagaimanapun orientasinya. - Untuk mendapatkan warna putih, campurkan ketiga warna. - Tempat penyimpanan memprioritaskan output kiri. - - Gunakan waktu untuk menciptakan desain yang dapat diulang - sangat berharga! - - Menahan <b>SHIFT</b> memungkinkan kamu untuk meletakkan beberapa bangunan sekaligus. - - Kamu dapat menahan <b>ALT</b> untuk memutar arah pada sabuk konveyor yang sudah diletakkan. + - Gunakan waktu untuk menciptakan desain yang dapat diulang - sangat + berharga! + - Menahan <b>SHIFT</b> memungkinkan kamu untuk meletakkan beberapa bangunan + sekaligus. + - Kamu dapat menahan <b>ALT</b> untuk memutar arah pada sabuk konveyor yang + sudah diletakkan. - Efisiensi adalah kunci! - Tampungan bentuk yang semakin jauh dari pusat maka akan semakin kompleks. - - Mesin-mesin memiliki kecepatan maksimum, bagilah mereka untuk mendapatkan efisiensi maksimal. + - Mesin-mesin memiliki kecepatan maksimum, bagilah mereka untuk mendapatkan + efisiensi maksimal. - Gunakan penyeimbang untuk memaksimalkan efisiensi pabrikmu. - - Pabrik yang terorganisir itu penting. Cobalah untuk tidak banyak menyebrangi konveyor. + - Pabrik yang terorganisir itu penting. Cobalah untuk tidak banyak + menyebrangi konveyor. - Rencanakan terlebih dahulu, supaya tidak menjadi berantakan! - - Jangan hapus pabrik-pabrik lama kamu! Kamu akan memerlukannya untuk mengupgrade Tingkatan selanjutnya. - - Cobalah untuk menyelesaikan level 20 atau 26 sendiri terlebih dahulu sebelum mencari bantuan! + - Jangan hapus pabrik-pabrik lama kamu! Kamu akan memerlukannya untuk + mengupgrade Tingkatan selanjutnya. + - Cobalah untuk menyelesaikan level 20 atau 26 sendiri terlebih dahulu + sebelum mencari bantuan! - Jangan mempersulit hal-hal, cobalah untuk tetap simpel dan kamu akan maju. - - Kamu mungkin perlu menggunakan ulang pabrik-pabrik yang telah kamu buat. Buat pabrikmu supaya dapat digunakan kembali. - - Terkadang, kamu dapat menemukan bentuk yang diperlukan pada peta tanpa harus menumpuknya. - - Bentuk penuh windmills dan pinwheels tidak akan pernah muncul secara natural. + - Kamu mungkin perlu menggunakan ulang pabrik-pabrik yang telah kamu buat. + Buat pabrikmu supaya dapat digunakan kembali. + - Terkadang, kamu dapat menemukan bentuk yang diperlukan pada peta tanpa + harus menumpuknya. + - Bentuk penuh windmills dan pinwheels tidak akan pernah muncul secara + natural. - Warnai bentuk sebelum memotongnya untuk meningkatkan efisiensi. - - Dengan modul-modul, ruang hanyalah persepsi; sebuah kekhawatiran untuk seorang yang hidup. - - Buatlah pabrik Cetak Biru yang terpisah. Mereka sangat penting untuk membuat modul. + - Dengan modul-modul, ruang hanyalah persepsi; sebuah kekhawatiran untuk + seorang yang hidup. + - Buatlah pabrik Cetak Biru yang terpisah. Mereka sangat penting untuk + membuat modul. - Perhatikan lebih dekat pencampur warnanya, dan pertanyaanmu akan terjawab. - Gunakan <b>CTRL</b> + Klik untuk memilih sebuah area. - - Bangunan yang terlau dekat dengan pusat dapat menghalangi projek yang akan datang. - - Ikon pin di samping tiap bentuk pada tab upgrade akan mem-pin bentuknya ke layar. + - Bangunan yang terlau dekat dengan pusat dapat menghalangi projek yang akan + datang. + - Ikon pin di samping tiap bentuk pada tab upgrade akan mem-pin bentuknya ke + layar. - Campur semua warna utama untuk menciptakan warna putih! - - Kamu punya peta yang tak terbatas. Jadi jangan memadatkan pabrikmu di pusat, luaskan! + - Kamu punya peta yang tak terbatas. Jadi jangan memadatkan pabrikmu di + pusat, luaskan! - Cobalah Factorio juga! Itu game favorit saya. - - Pemotong (Empat Bagian) memotong searah jarum jam mulai dari bagian kanan atas. + - Pemotong (Empat Bagian) memotong searah jarum jam mulai dari bagian kanan + atas. - Kamu bisa mengunduh data simpananmu di menu utama (main menu)! - - Game ini memiliki banyak tombol pintas (keybindings) yag sangat berguna! Pastikan untuk mengeceknya di pengaturan. + - Game ini memiliki banyak tombol pintas (keybindings) yag sangat berguna! + Pastikan untuk mengeceknya di pengaturan. - Game ini memiliki banyak pengaturan, Pastikan untuk mengeceknya! - Penanda bangunan pusatmu memiliki kompas yang menunjukkan lokasinya! - - Untuk membersihkan sabuk konveyor, pindahkan (cut) bagian dan tempel (paste) di lokasi yang sama. + - Untuk membersihkan sabuk konveyor, pindahkan (cut) bagian dan tempel + (paste) di lokasi yang sama. - Tekan F4 untuk menunjukkan FPS dan Tick Rate kamu. - Tekan F4 dua kali untuk menunjukkan ubin mouse dan kameramu. - - Kamu bisa mengklik bentuk yang di-pin di sebelah kiri untuk tidak mem-pinnya lagi. + - Kamu bisa mengklik bentuk yang di-pin di sebelah kiri untuk tidak + mem-pinnya lagi. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-it.yaml b/translations/base-it.yaml index 572bbc77..ecb8dafc 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -14,39 +14,14 @@ steamPage: All'inizio lavorerai solo con le forme, ma in seguito dovrai colorarle; a questo scopo dovrai estrarre e mescolare i colori! Comprare il gioco su Steam ti garantirà l'accesso alla versone completa, ma puoi anche giocare una demo su shapez.io e decidere in seguito! - title_advantages: Vantaggi della versione completa - advantages: - - <b>12 nuovi livelli</b> per un totale di 26 livelli - - <b>18 nuovi edifici</b> per una fabbrica completamente automatizzata! - - <b>20 gradi di miglioramenti</b> per molte ore di divertimento! - - <b>L'aggiornamento dei Cavi</b> per una dimensione completamente nuova! - - <b>Modalità scura</b>! - - Salvataggi illimitati - - Etichette illimitate - - Mi sostieni! ❤️ - title_future: Contenuti pianificati - planned: - - Archivio dei progetti (esclusiva della versione completa) - - Achievement di steam - - Modalità puzzle - - Minimappa - - Mod - - Modalità sandbox - - ... e molto altro! - title_open_source: Questo gioco è open source! - title_links: Link - links: - discord: Server Discord ufficiale - roadmap: Tabella di marcia - subreddit: Reddit - source_code: Codice sorgente (GitHub) - translate: Aiutaci a tradurre - text_open_source: >- - Chiunque può contribuire, partecipo attivamente nella community e cerco - di leggere tutti i suggerimenti e di prendere in considerazione tutti i - feedback, quando possibile. - - Controlla la mia pagina di trello per la tabella di marcia completa! + what_others_say: "Hanno detto di shapez.io:" + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Caricamento error: Errore @@ -78,6 +53,7 @@ global: escape: ESC shift: MAIUSC space: SPAZIO + loggingIn: Logging in demoBanners: title: Versione Demo intro: Ottieni la versione completa per sbloccare tutte le funzioni! @@ -97,6 +73,12 @@ mainMenu: madeBy: Creato da <author-link> subreddit: Reddit savegameUnnamed: Senza nome + puzzleMode: Modalità puzzle + back: Back + puzzleDlcText: Ti piace miniaturizzare e ottimizzare le tue fabbriche? Ottini il + Puzzle DLC ora su steam per un divertimento ancora maggiore! + puzzleDlcWishlist: Aggiungi alla lista dei desideri ora! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -110,6 +92,9 @@ dialogs: viewUpdate: Mostra aggiornamento showUpgrades: Mostra miglioramenti showKeybindings: Mostra scorciatoie + retry: Riprova + continue: Continua + playOffline: Gioca offline importSavegameError: title: Errore di importazione text: "Impossibile caricare il salvataggio:" @@ -208,11 +193,79 @@ dialogs: desc: Qui puoi cambiare il nome del salvataggio. tutorialVideoAvailable: title: Tutorial Disponibile - desc: C'è un video tutorial disponibile per questo livello! Vorresti dargli un'occhiata? + desc: C'è un video tutorial disponibile per questo livello! Vorresti dargli + un'occhiata? tutorialVideoAvailableForeignLanguage: title: Tutorial Disponibile desc: C'è un video tutorial per questo livello, ma è disponibile solo in Inglese. Vorresti dargli un'occhiata? + editConstantProducer: + title: Imposta oggetto + puzzleLoadFailed: + title: Impossibile caricare i puzzle + desc: "Sfortunatamente non è stato possibile caricare i puzzle:" + submitPuzzle: + title: Pubblica il puzzle + descName: "Dai un nome al tuo puzzle:" + descIcon: "Per favore inserisci un codice per la forma identificativa, che sarà + mostrata come icona del tuo puzzle (Pui generarla <link>qui</link>, + oppure sceglierne una tra quelle casuali qui sotto):" + placeholderName: Nome puzzle + puzzleResizeBadBuildings: + title: Impossibile ridimensionare + desc: Non è possibile ridurre la zona ulteriormente, dato che alcuni edifici + sarebbero fuori dalla zona. + puzzleLoadError: + title: Caricamento fallito + desc: "Impossibile caricare il puzzle:" + offlineMode: + title: Modalità offline + desc: Non siamo risciti a contattare i server, quindi il gioco è in modalità + offline. Per favore assicurati di avere una connessione internet + attiva. + puzzleDownloadError: + title: Errore di download + desc: "Il download del puzzle è fallito:" + puzzleSubmitError: + title: Errore di pubblicazione + desc: "La pubblicazione del puzzle è fallita:" + puzzleSubmitOk: + title: Puzzle pubblicato + desc: Congratulazioni! Il tuo puzzle è stato pubblicato e ora può essere giocato + da altri. Puoi trovarlo nella sezione "I miei puzzle". + puzzleCreateOffline: + title: Modalità offline + desc: Dato che sei offline, non potrai salvare e/o pubblicare il tuo puzzle. Sei + sicuro di voler contnuare? + puzzlePlayRegularRecommendation: + title: Raccomandazione + desc: Ti raccomando <strong>fortemente</strong> di giocare nella modalità + normale fino al livello 12 prima di cimentarti nel puzzle DLC, + altrimenti potresti incontrare meccaniche non ancora introdotte. Sei + sicuro di voler continuare? + puzzleShare: + title: Codice copiato + desc: Il codice del puzzle (<key>) è stato copiato negli appunti! Può essere + inserito nel menù dei puzzle per accedere al puzzle. + puzzleReport: + title: Segnala puzzle + options: + profane: Volgare + unsolvable: Senza soluzione + trolling: Troll + puzzleReportComplete: + title: Grazie per il tuo feedback! + desc: Il puzzle è stato segnalato. + puzzleReportError: + title: Segnalazione fallita + desc: "Non è stato possibile elaborare la tua segnalazione:" + puzzleLoadShortKey: + title: Inserisci codice + desc: Inserisci il codice del puzzle per caricarlo. + puzzleDelete: + title: Cancellare il puzzle? + desc: Sei sicuro di voler cancellare '<title>'? Questa azione non può essere + annullata! ingame: keybindingsOverlay: moveMap: Sposta @@ -234,6 +287,7 @@ ingame: clearSelection: Annulla selezione pipette: Contagocce switchLayers: Cambia livello + clearBelts: Clear belts buildingPlacement: cycleBuildingVariants: Premi <key> per cambiare variante. hotkeyLabel: "Hotkey: <key>" @@ -308,29 +362,33 @@ ingame: velocemente.<br><br>Suggerimento: Tieni premuto <strong>MAIUSC</strong> per piazzare estrattori multipli, e usa <strong>R</strong> per ruotarli." - 2_1_place_cutter: "Ora posiziona un <strong>Taglierino</strong> per tagliare i cerchi in due - metà!<br><br> PS: Il taglierino taglia sempre <strong>dall'alto verso il - basso</strong> indipendentemente dal suo orientamento." - 2_2_place_trash: Il taglierino può <strong>intasarsi e bloccarsi</strong>!<br><br> Usa un - <strong>cestino</strong> per sbarazzarti delgli scarti (!) inutilizzati. - 2_3_more_cutters: "Ben fatto! Ora posiziona <strong>altri 2 taglierini</strong> per velocizzare - questo lento processo!<br><br> PS: Usa i numeri <strong>da 0 a 9 </strong> - per selezionare gli edifici più in fretta!" + 2_1_place_cutter: "Ora posiziona un <strong>Taglierino</strong> per tagliare i + cerchi in due metà!<br><br> PS: Il taglierino taglia sempre + <strong>dall'alto verso il basso</strong> indipendentemente dal + suo orientamento." + 2_2_place_trash: Il taglierino può <strong>intasarsi e + bloccarsi</strong>!<br><br> Usa un <strong>cestino</strong> per + sbarazzarti delgli scarti (!) inutilizzati. + 2_3_more_cutters: "Ben fatto! Ora posiziona <strong>altri 2 taglierini</strong> + per velocizzare questo lento processo!<br><br> PS: Usa i numeri + <strong>da 0 a 9 </strong> per selezionare gli edifici più in + fretta!" 3_1_rectangles: "Ora estraiamo qualche rettangolo! <strong>Costruisci 4 - estrattori</strong> and connect them to the HUB.<br><br> PS: - Tieni premuto <strong>SHIFT</strong> mentre trascini un nastro per attivare il - pianificatore di nastri!" - 21_1_place_quad_painter: Posiziona il <strong>verniciatore quadruplo</strong> e prendi dei - <strong>cerchi</strong> e i colori <strong>bianco</strong> - <strong>rosso</strong>! + estrattori</strong> e connettili alla HUB.<br><br> PS: Tieni + premuto <strong>SHIFT</strong> mentre trascini un nastro per + attivare il pianificatore di nastri!" + 21_1_place_quad_painter: Posiziona il <strong>verniciatore quadruplo</strong> e + prendi dei <strong>cerchi</strong> e i colori + <strong>bianco</strong> <strong>rosso</strong>! 21_2_switch_to_wires: Per passare al livello elettrico basta premere - <strong>E</strong>!<br><br> Poi <strong>connetti tutti e quattro gli - input</strong> del verniciatore con i cavi! - 21_3_place_button: Fantastico! Ora posiziona un <strong>Interruttore</strong> e connettilo - con i cavi! - 21_4_press_button: "Premi l'interruttore per fargli <strong>emettere un segnale di verità - </strong> e fargli quindi attivare il vernciatore.<br><br> PS: Non c'è bisogno - che tu connetta tutti gli imput! Prova a collegarne solo due." + <strong>E</strong>!<br><br> Poi <strong>connetti tutti e quattro + gli input</strong> del verniciatore con i cavi! + 21_3_place_button: Fantastico! Ora posiziona un <strong>Interruttore</strong> e + connettilo con i cavi! + 21_4_press_button: "Premi l'interruttore per fargli <strong>emettere un segnale + di verità </strong> e fargli quindi attivare il + vernciatore.<br><br> PS: Non c'è bisogno che tu connetta tutti + gli imput! Prova a collegarne solo due." colors: red: Rosso green: Verde @@ -363,9 +421,6 @@ ingame: buildings: title: 18 nuovi edifici desc: Automatizza completamente la tua fabbrica! - savegames: - title: ∞ salvataggi - desc: Quanti ne desideri! upgrades: title: ∞ gradi di miglioramenti desc: Questa demo ne ha solo 5! @@ -381,6 +436,54 @@ ingame: support: title: Sostienimi desc: Lo sviluppo nel tempo libero! + achievements: + title: Achievement + desc: Collezionali tutti! + puzzleEditorSettings: + zoneTitle: Zona + zoneWidth: Larghezza + zoneHeight: Altezza + trimZone: Riduci + clearItems: Elimina oggetti + share: Condividi + report: Segnala + clearBuildings: Cancella edifici + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Creazione puzzle + instructions: + - 1. Posiziona dei <strong>produttori costanti</strong> per fornire + forme e colori al giocatore + - 2. Costruisci una o più forme che vuoi che il giocatore costruisca + e consegni a uno o più degli <strong>Accettori di + obiettivi</strong> + - 3. Una volta che un accettore di obiettivi riceve una forma per un + certo lasso di tempo, lo <strong>salva come obiettivo</strong> che + il giocatore dovrà poi produrre (Indicato dal <strong>simbolo + verde</strong>). + - 4. Clicca il <strong>bottone di blocco</strong> su un edificio per + disabilitarlo. + - 5. Una volta che cliccherai verifica, il tuo puzzle sarà + convalidato e potrai pubblicarlo. + - 6. Una volta rilasciato, <strong>tutti gli edifici saranno + rimossi</strong> ad eccezione di produttori e accettori di + obiettivi. Quella è la parte che il giocatore deve capire da solo, + dopo tutto :) + puzzleCompletion: + title: Puzzle completato! + titleLike: "Clicca il cuore se ti è piaciuto:" + titleRating: Quanto è stato difficile il puzzle? + titleRatingDesc: La tua valutazione mi aiuterà a darti raccomandazioni migliori + in futuro + continueBtn: Continua a giocare + menuBtn: Menù + nextPuzzle: Puzzle successivo + puzzleMetadata: + author: Autore + shortKey: Codice + rating: Punteggio difficoltà + averageDuration: Durata media + completionRate: Tasso di completamento shopUpgrades: belt: name: Nastri, distribuzione e tunnel @@ -479,7 +582,7 @@ buildings: second: name: Cavo description: Trasmette segnali, che possono essere oggetti, colori o booleani (1 - / 0). Cavi di colore diverso non si connettono. + / 0). I cavi di colore diverso non si connettono. balancer: default: name: Bilanciatore @@ -594,22 +697,35 @@ buildings: name: Generatore di oggetti description: Disponibile solo nella modalità sandbox, emette il segnale dal livello elettrico come oggetti sul livello normale. + constant_producer: + default: + name: Produttore costante + description: Produce costantemente una forma o un colore specificati. + goal_acceptor: + default: + name: Accettore di obiettivi. + description: Consegna forme all'accettore di obiettivi per impostarli come + obiettivo. + block: + default: + name: Blocco + description: Blocca una casella. storyRewards: reward_cutter_and_trash: title: Taglio forme - desc: Il <strong>taglierino</strong> è stato bloccato! Taglia le forme a metà da - sopra a sotto <strong>indipendentemente dal suo + desc: Il <strong>taglierino</strong> è stato sbloccato! Taglia le forme a metà + da sopra a sotto <strong>indipendentemente dal suo orientamento</strong>!<br><br> Assicurati di buttare via lo scarto, - sennò <strong>si intaserà e andrà in stallo </strong> - Per questo - ti ho dato il <strong>certino</strong>, che distrugge tutto quello - che riceve! + altrimenti <strong>si intaserà e andrà in stallo </strong> - Per + questo ti ho dato il <strong>cestino</strong>, che distrugge tutto + quello che riceve! reward_rotater: title: Rotazione desc: Il <strong>ruotatore</strong> è stato sbloccato! Ruota le forme di 90 gradi in senso orario. reward_painter: title: Verniciatura - desc: "Il <strong>verniciatore</strong> è stato sbloccato! Estrai dalle vene + desc: "Il <strong>verniciatore</strong> è stato sbloccato! Estrai dai giacimenti colorate (esattamente come fai con le forme) e combina il colore con una forma nella veniciatrice per colorarla!<br><br>PS: Se sei daltonico, c'è la <strong>modalità daltonici </strong> nelle @@ -630,7 +746,7 @@ storyRewards: reward_rotater_ccw: title: Rotazione antioraria desc: Hai sbloccato una variante del <strong>ruotatore</strong>! Consente di - ruotare in senso antiorario! Per costruirla, seleziona la ruotatrice + ruotare in senso antiorario! Per costruirla, seleziona il ruotatore e <strong>premi 'T' per cambiare variante</strong>! reward_miner_chainable: title: Estrattore a catena @@ -684,7 +800,7 @@ storyRewards: per <strong>sbloccare i miglioramenti</strong>!" no_reward_freeplay: title: Prossimo livello - desc: Congratulazioni! Ci sono altri contenuti in prgramma per la versione + desc: Congratulazioni! Ci sono altri contenuti in programma per la versione completa! reward_stacker: title: Impilatrice @@ -694,9 +810,9 @@ storyRewards: destro è <strong>impilato sopra</strong> il sinistro! reward_balancer: title: Bilanciatore - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + desc: Il <strong>bilanciatore</strong> multifunzione è stato sbloccato - Può + essere usato per costruire fabbriche più grandi <strong>unendo e + dividendo gli oggetti</strong> su diversi nastri! reward_merger: title: Aggregatore compatto desc: Hai sbloccato un <strong>aggregatore</strong>, variante del @@ -708,7 +824,7 @@ storyRewards: la portata di un nastro.<br><br>E aspetta di sbloccare i cavi, allora sì che sarà molto utile! reward_rotater_180: - title: Ruotatrice (180 gradi) + title: Ruotatore (180 gradi) desc: Hai appena sbloccato il <strong>ruotatore</strong> a 180 gradi! Consente di ruotare una forma di 180 gradi (Sorpresa! :D) reward_display: @@ -718,8 +834,8 @@ storyRewards: lettore di nastri e il magazzino mostrano l'ultimo oggetto da loro letto? Prova a mostrarlo su di un display!" reward_constant_signal: - title: Sengale costante - desc: Hai sblocatto l'edificio <strong>segnale costante</strong> sul livello + title: Segnale costante + desc: Hai sbloccato l'edificio <strong>segnale costante</strong> sul livello elettrico! È utile collegarlo ai <strong>filtri di oggetti</strong> per esempio.<br><br> Il segnale costante può emettere una <strong>forma</strong>, un <strong>colore</strong> o un @@ -744,14 +860,15 @@ storyRewards: normalmente. <br><br> Qualsiasi cosa tu scelga, ricordati di divertirti! reward_wires_painter_and_levers: - title: Cavi e Verniciatrice quadrupla - desc: "Hai appena sbloccato il <strong>Livello Elettrico</strong>: è un livello separato - dal livelo normale e introduce molte altre - meccaniche di gioco!<br><br> Per il momento ti ho sbloccato il <strong>Verniciatore - Quadruplo</strong> - Connetti con il piano elettrico gli spazi - che vorresti colorare!<br><br> Per passare al livello elettrico ti basta premere - <strong>E</strong>. <br><br> PS: <strong>Attiva gli aiuti</strong> nelle - impostazioni per attivare il tutorial dei cavi!" + title: Cavi e Verniciatore quadruplo + desc: "Hai appena sbloccato il <strong>Livello Elettrico</strong>: è un livello + separato dal livelo normale e introduce molte altre meccaniche di + gioco!<br><br> Per il momento ti ho sbloccato il + <strong>Verniciatore Quadruplo</strong> - Connetti con il piano + elettrico gli spazi che vorresti colorare!<br><br> Per passare al + livello elettrico ti basta premere <strong>E</strong>. <br><br> PS: + <strong>Attiva gli aiuti</strong> nelle impostazioni per attivare il + tutorial dei cavi!" reward_filter: title: Filtro oggetti desc: Hai sbloccato il <strong>filtro oggetti</strong>! Smisterà gli oggetti @@ -903,7 +1020,7 @@ settings: edifici. lowQualityTextures: title: Texture in bassa qualità (Brutto) - description: Usa texture a bassa qualità per migliorare le prestazioni. Quesro + description: Usa texture a bassa qualità per migliorare le prestazioni. Questo renderà il gioco molto brutto! displayChunkBorders: title: Mostra confini dei Chunk @@ -912,7 +1029,7 @@ settings: pickMinerOnPatch: title: Scegli estrattore sui giacimenti di risorse description: Attivato di default, seleziona l'estrattore se usi il contagocce - quando il cursore è su un giacimento risorse. + quando il cursore è su una vena di risorse. simplifiedBelts: title: Nastri semplificati (Brutto) description: Non renderizza gli oggetti sui nastri a meno che il cursore non sia @@ -926,13 +1043,19 @@ settings: movimento. zoomToCursor: title: Zoom verso il Cursore - description: Se attivato, lo zoom andrà verso la posizione del mouse, - altrimenti sarà verso il centro dello schermo. + description: Se attivato, lo zoom andrà verso la posizione del mouse, altrimenti + sarà verso il centro dello schermo. mapResourcesScale: title: Grandezza delle Risorse sulla Mappa - description: Controlla la grandezza delle forme visualizzate sulla mappa (quando si fa lo zoom - indietro). + description: Controlla la grandezza delle forme visualizzate sulla mappa (quando + si fa lo zoom indietro). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Determina se mostrare sempre la forma in uscita da un edificio + quando si passa sopra di esso col cursore, invece di dover + premere 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Comandi hint: "Suggerimento: Usa spesso CTRL, MAIUSC e ALT! Abilitano opzioni di @@ -949,7 +1072,7 @@ keybindings: mappings: confirm: Conferma back: Indietro - mapMoveUp: Spostati sù + mapMoveUp: Spostati su mapMoveRight: Spostati a destra mapMoveDown: Spostati giù mapMoveLeft: Spostati a sinistra @@ -1006,6 +1129,15 @@ keybindings: comparator: Comparatore item_producer: Generatore di oggetti (Sandbox) copyWireValue: "Cavi: Copia valore sotto il cursore" + rotateToUp: "Ruota: punta in alto" + rotateToDown: "Ruota: punta in basso" + rotateToRight: "Ruota: punta a destra" + rotateToLeft: "Ruota: punta a sinistra" + constant_producer: Produttore costante + goal_acceptor: Accettore di obiettivi + block: Blocco + massSelectClear: Sgombra nastri + showShapeTooltip: Mostra forma di uscita di un edificio about: title: Riguardo questo gioco body: >- @@ -1015,13 +1147,11 @@ about: Se vuoi contribuire visita la pagina github di <a href="<githublink>" target="_blank">shapez.io</a>.<br><br> - Realizzare questo gioco non sarebbe stato possibile senza la grande community di Discord per i miei giochi - - Unisciti al <a href="<discordlink>" target="_blank">server di Discord</a>!<br><br> + Realizzare questo gioco non sarebbe stato possibile senza la grande community di Discord per i miei giochi - Unisciti al <a href="<discordlink>" target="_blank">server di Discord</a>!<br><br> - La colonna sonora è stata composta da<a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - È un grande.<br><br> + La colonna sonora è stata composta da<a href="https://soundcloud.com/pettersumelius" target="_blank"> Peppsen</a> - È un grande.<br><br> - Per finire, grazie di cuore al mio migliore amico <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - - Senza le nostre sessioni su factorio questo gioco non sarebbe mai esistito. + Per finire, grazie di cuore al mio migliore amico <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Senza le nostre sessioni su factorio questo gioco non sarebbe mai esistito. changelog: title: Registro modifiche demo: @@ -1029,7 +1159,7 @@ demo: restoringGames: Recupero salvataggi importingGames: Importazione salvataggi oneGameLimit: Limite di un salvataggio - customizeKeybindings: Scorciatoie personalizabili + customizeKeybindings: Scorciatoie personalizzabili exportingBase: Esportazione dell'intera base come immagine settingNotAvailable: Non disponibile nella demo. tips: @@ -1056,8 +1186,8 @@ tips: efficienza. - Tenere premuto <b>SHIFT</b> attiva il pianificatore nastri, facilitando il posizionamento dei nastri più lunghi - - I taglierini tagliano sempre in verticale, indipendentemente - dall'orientamento. + - I taglierini tagliano sempre in verticale, indipendentemente dal loro + orientamento. - Mischia tutti i tre colori per fare il bianco. - Il magazzino prioritizza la prima uscita. - Impiega tempo per costruire design replicabili, ne vale la pena! @@ -1076,7 +1206,7 @@ tips: - Cerca di risolvere il livello 20 da solo prima di chiedere aiuto! - Non complicare le cose, cerca di mantenere la semplicità e farai strada. - Dovrai riusare le tue fabbriche più avanti nel gioco. Pianifica le tue - fabbriche in modo che siano reutilizzabili. + fabbriche in modo che siano riutilizzabili. - A volte, puoi trovare la forma che ti serve nella mappa senza crearla con le impilatrici. - Non troverai mai giacimenti di girandole complete. @@ -1099,10 +1229,97 @@ tips: - Puoi scaricare i salvataggi dal menù principale! - Questo gioco ha molti tasti di scelta rapida! Dai un'occhiata alla pagina delle impostazioni - - Questo gioco ha molte impostazioni, dai un'occhiata! + - Questo gioco ha molte impostazioni, dagli un'occhiata! - L'etichetta dell'hub ha una piccola bussola per indicarne la direzione! - Per svuotare i nastri, taglia e re-incolla l'area nello stesso punto. - Premi F4 per mostrare FPS e Tick al secondo. - Premi F4 due volte per mostrare la casella del cursore e della telecamera. - Puoi cliccare a sinistra di una forma fermata a schermo per rimuoverla dalla lista. +puzzleMenu: + play: Gioca + edit: Modifica + title: Modalità puzzle + createPuzzle: Crea puzzle + loadPuzzle: Carica + reviewPuzzle: Verifica e pubblica + validatingPuzzle: Convalidazione puzzle + submittingPuzzle: Pubblicazione puzzle + noPuzzles: Al momento non ci sono puzzle in questa sezione. + categories: + levels: Livelli + new: Nuovo + top-rated: Più votati + mine: I miei puzzle + easy: Facili + hard: Difficili + completed: Completati + medium: Medi + official: Ufficiali + trending: Più popolari di oggi + trending-weekly: Più popolari della settimana + categories: Categorie + difficulties: Per difficoltà + account: I miei puzzle + search: Cerca + validation: + title: Puzzle non valido + noProducers: Per favore posiziona un Produttore costante! + noGoalAcceptors: Per favore posiziona un accettore di obiettivi! + goalAcceptorNoItem: Uno o più degli accettori di obiettivi non hanno un oggetto + assegnato. Consgnagli una forma per impostare l'obiettivo. + goalAcceptorRateNotMet: Uno o più degli accettori di obiettivi non ricevono + abbastanza oggetti. Assicurati che gli indicatori siano verdi per + tutti gli accettori. + buildingOutOfBounds: Uno o più edifici sono fuori dalla zona di costruzione. + Ingrandisci l'area o rimuovili. + autoComplete: Il tuo puzzle si autocompleta! Per favore assicurati che i tuoi + produttori costanti non consegnino direttamente agli accettori di + obiettivi. + difficulties: + easy: Facile + medium: Medio + hard: Difficile + unknown: Non classificato + dlcHint: Hai già acquistato il DLC? Assicurati che sia attivo facendo clic + destro su shapez.io nella tua libreria e selezionando Proprietà > DLC. + search: + action: Cerca + placeholder: Inserisci il nome di un puzzle o di un autore + includeCompleted: Include Completed + difficulties: + any: Qualsiasi difficoltà + easy: Facile + medium: Medio + hard: Difficile + durations: + any: Qualsiasi durata + short: Breve (< 2 minuti) + medium: Normale + long: Lunga (> 10 minuti) +backendErrors: + ratelimit: Stai facendo troppe azioni velocemente. Per favore attendi un attimo. + invalid-api-key: Comunicazione con il backend fallita, per favore prova ad + aggiornare o riavviare il gioco (Invalid Api Key). + unauthorized: Comunicazione con il backend fallita, per favore prova ad + aggiornare o riavviare il gioco (Unauthorized). + bad-token: Comunicazione con il backend fallita, per favore prova ad aggiornare + o riavviare il gioco (Bad Token). + bad-id: Identificativo puzzle non valido. + not-found: Non è stato possibile trovare il puzzle. + bad-category: Non è stato possibile trovare la categoria. + bad-short-key: Il codice non è valido. + profane-title: Il titolo del tuo puzzle contiene volgarità. + bad-title-too-many-spaces: Il titolo del tuo puzzle è troppo breve. + bad-shape-key-in-emitter: Un produttore costante ha un oggetto non valido. + bad-shape-key-in-goal: Un accettore di obiettivi ha un oggetto non valido. + no-emitters: Il tuo puzzle non contiente alcun produttore costante. + no-goals: Il tuo puzzle non contiene alcun accettore di obiettivi. + short-key-already-taken: Queesto codice forma è già in uso, per favore scegline un altro. + can-not-report-your-own-puzzle: Non puoi segnlare il tuo puzzle. + bad-payload: La richiesta contiene dati non validi. + bad-building-placement: Il tuo puzzle contiene edifici non validi. + timeout: La richiesta è scaduta. + too-many-likes-already: Questo puzzle ha già ricevuto troppi "mi piace". Se vuoi + ancora rimuoverlo, per favore contatta support@shapez.io! + no-permission: Non hai i permessi per eseguire questa azione. diff --git a/translations/base-ja.yaml b/translations/base-ja.yaml index a49611a2..2d871326 100644 --- a/translations/base-ja.yaml +++ b/translations/base-ja.yaml @@ -2,43 +2,18 @@ steamPage: shortText: shapez.ioは無限のマップ内で様々な"形"を資源とし、段々と複雑になっていく形の作成や合成の自動化を目指して工場を構築するゲームです。 discordLinkShort: 公式Discord intro: >- - 工場の自動化ゲームはお好きですか?それなら間違いないでしょう! + 工場の自動化ゲームはお好きですか? それならここに来て正解です! - Shapez.ioは、様々な幾何学的形状を生成するために工場を建設する、落ち着いたゲームです。レベルが上がる毎に生成すべき形はどんどん複雑になり、工場を無限に広がるマップに拡張する必要があります。 + shapez.ioは、様々な幾何学形状の自動生産工場を建設する、リラックスして遊べるゲームです。レベルが上がるにつれ生産すべき形はどんどん複雑になり、無限に広がるマップに工場を拡張していくことになります。 - しかし、それだけでは不十分です。需要は指数関数的に上昇し、より多くの形状を生産する必要があり――"スケーリング"が、唯一の対抗策と成り得ます。最初は形状を加工するだけですが、後々着色も必要になってきます――それには色を抽出して、混ぜ合わせることが必要です! + しかし、それだけでは不十分です。指数関数的に増大していく形状の要求量に対応する必要があり――「スケーリング」が、唯一の対抗策と成り得ます。また、最初は形状を加工するだけですが、後々着色も必要になってきます。色を抽出して混ぜ合わせましょう! - Steamでゲームを購入するとフルバージョンで遊ぶことができますが、まずshapez.ioでデモをプレイし、その後で決めることもできます! - title_advantages: スタンドアロン版の特典 - advantages: - - <b>新しい12個のレベル</b>が追加され、全部で26個のレベルになります。 - - <b>新しい18個のパーツ</b>が自動化工場建設のために使用できます! - - <b>20個のアップデートティア</b>によって多くの時間楽しむことができます! - - <b>ワイヤアップデート</b>によって全く新次元の体験を得られます! - - <b>ダークモード</b>! - - セーブ数の上限がなくなります。 - - マップマーカー数の上限がなくなります。 - - 私をサポートできる!❤️ - title_future: 計画中の要素 - planned: - - ブループリント (スタンドアロン版専用) - - Steamの実績 - - パズルモード - - ミニマップ - - MOD対応 - - サンドボックスモード - - ……あともっとたくさんの要素! - title_open_source: このゲームはオープンソースです! - text_open_source: |- - 誰でも参加することができます。私はコミュニティに積極的に参加し、すべての提案を確認し、可能な場合はフィードバックしようとしています。 - 完全なロードマップについては、Trello boardを確認してください! - title_links: リンク - links: - discord: 公式Discord - roadmap: ロードマップ - subreddit: Subreddit - source_code: ソースコード(GitHub) - translate: 翻訳を助けてください! + Steamでゲームを購入するとフルバージョンで遊べますが、まずshapez.ioでデモをプレイし、その後で決めることもできます! + what_others_say: shapez.ioプレイヤーの反応: + nothernlion_comment: これはすごいゲーム。プレイ体験が最高な上に時間の溶け方が尋常でない。 + notch_comment: いややばいって。マジで寝なきゃなんだけど、今ならshapez.ioで計算機組めそうな気がする。 + steam_review_comment: このゲームは私の生活を奪い去っていったが、返して欲しいとは思わない。 + いくらでも気の向くままに生産ラインを効率化させてくれる、そんなとても穏やかな工場ゲームだ。 global: loading: ロード中 error: エラー @@ -70,6 +45,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: デモ版 intro: スタンドアローン版を手に入れ、すべての機能をアンロックしましょう! @@ -82,12 +58,18 @@ mainMenu: importSavegame: インポート openSourceHint: このゲームはオープンソースです discordLink: 公式Discordサーバー - helpTranslate: 翻訳を助けてください! + helpTranslate: 翻訳にご協力ください! madeBy: <author-link>によって作られました - browserWarning: このゲームはお使いのブラウザでは速度が落ちることがあります。スタンドアローン版を入手するか、Chromeでプレイすることでこの問題は避けられます。 + browserWarning: このゲームはお使いのブラウザでは速度が落ちることがあります。スタンドアローン版を入手するか、Chromeでプレイすることで解決できます。 savegameLevel: レベル <x> savegameLevelUnknown: 不明なレベル savegameUnnamed: 無名のデータ + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -101,6 +83,9 @@ dialogs: viewUpdate: アップデートを見る showUpgrades: アップグレード表示 showKeybindings: キー設定表示 + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: インポートエラー text: "セーブデータのインポートに失敗しました:" @@ -149,7 +134,7 @@ dialogs: desc: 多数の建造物をカットしようとしています! (<count> 個の選択) 続行しますか? massCutInsufficientConfirm: title: カット確認 - desc: 設置コストが不足しています! 続行しますか? + desc: 設置コストが不足しています! 続行しますか? blueprintsNotUnlocked: title: 未解除 desc: レベル12をクリアしてブループリント機能を解除してください! @@ -175,15 +160,77 @@ dialogs: desc: スクリーンショット出力を実行します。この処理は工場の全体像があまりに大きいと、 ゲームが遅くなったりクラッシュしてしまう可能性があります! renameSavegame: title: セーブデータの名前を変更 - desc: セーブデータの名前を変更することができます + desc: セーブデータの名前を変更できます tutorialVideoAvailable: title: チュートリアル視聴可能 - desc: このレベルで利用できるチュートリアルの動画があります! - 見ますか? + desc: このレベルで利用できるチュートリアル動画があります! 確認しますか? tutorialVideoAvailableForeignLanguage: title: チュートリアル視聴可能 - desc: このレベルで利用できるチュートリアルの動画がありますが、それは - 英語です。見ますか? + desc: このレベルで利用できるチュートリアル動画がありますが、言語は英語です。確認しますか? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: マップ移動 @@ -203,8 +250,9 @@ ingame: cutSelection: カット copySelection: コピー clearSelection: 選択範囲をクリア - pipette: ピペット + pipette: スポイト switchLayers: レイヤーを変更 + clearBelts: Clear belts colors: red: 赤 green: 緑 @@ -287,28 +335,23 @@ ingame: もっと早く要件を満たせるように、追加の抽出機とベルトを設置しましょう。<br><br>Tip: <strong>SHIFT</strong> キーを押し続けると抽出機を連続配置できます。<strong>R</strong>キーで設置方向を回転できます。" - 2_1_place_cutter: "次に、<strong>切断機</strong>を設置し、円を - 2分割します!<br><br> 追記: 切断機はそれの向きに関わらず、<strong>縦の線</strong>で切断します。" + 2_1_place_cutter: "次に、<strong>切断機</strong>を設置し、円を 二分割します!<br><br> 追記: + 切断機はそれの向きに関わらず、<strong>縦の線</strong>で切断します。" 2_2_place_trash: 切断機は<strong>詰まる</strong>場合があります!<br><br> - <strong>ゴミ箱</strong>を利用して、不必要な部品を廃棄することができます。 - 2_3_more_cutters: "いいですね!<strong>更に2つ以上の切断機</strong>を設置して - 処理をスピードアップさせましょう!<br><br> 追記: <strong>0から9 - のホットキー</strong>を使用すると素早く部品にアクセスできます。" - 3_1_rectangles: "それでは四角形を抽出しましょう!<strong>4つの抽出機を - 作成</strong>してそれをハブに接続します。<br><br> 追記: - <strong>SHIFT</strong>を押しながらベルトを引くと - ベルトプランナーが有効になります!" + <strong>ゴミ箱</strong>を利用して、不必要な部品を廃棄できます。 + 2_3_more_cutters: "いいですね! <strong>更に2つ以上の切断機</strong>を設置して処理をスピードアップさせましょう!<br>\ + <br> 追記: <strong>0から9 のホットキー</strong>を使用すると素早く部品にアクセスできます。" + 3_1_rectangles: "それでは四角形を抽出しましょう! <strong>4つの抽出機を作成</strong>してそれをハブに接続します。<br><\ + br> 追記: <strong>SHIFT</strong>を押しながらベルトを引くと ベルトプランナーが有効になります!" 21_1_place_quad_painter: <strong>四色着色機</strong>を設置して、 <strong>円</strong>、<strong>白</strong>そして <strong>赤</strong>を抽出します! 21_2_switch_to_wires: <strong>E</strong>を押すとワイヤレイヤに - 切り替えできます!<br><br>そして<strong>4つの入力全てを</strong> - ケーブルで接続します! - 21_3_place_button: いいね!次に<strong>スイッチ</strong>を設置して - そのワイヤに接続します! + 切り替えできます! <br><br>そして<strong>4つの入力全てを</strong> ケーブルで接続します! + 21_3_place_button: いいですね! 次に<strong>スイッチ</strong>を設置して そのワイヤに接続します! 21_4_press_button: "スイッチを押して<strong>真らしい信号を 発する</strong>ようにして、着色機を有効化します。<br><br> 追記: 全ての - 入力を接続する必要はありません!2つだけ接続してみてください。" + 入力を接続する必要はありません! 2つだけ接続してみてください。" connectedMiners: one_miner: 1個の抽出機 n_miners: <amount>個の抽出機 @@ -327,12 +370,9 @@ ingame: buildings: title: 新しい18個の設置物 desc: あなたの工場を完全自動化しましょう! - savegames: - title: 無限個のセーブデータ - desc: あなたが望むだけデータを作成できます! upgrades: - title: 20個のアップデートティア - desc: このデモバージョンでは5ティアのみです! + title: 無限のアップグレード段階 + desc: このデモバージョンでは5段階のみです! markers: title: 無限個のマップマーカー desc: これでもうあなたの工場を見失いません! @@ -345,18 +385,62 @@ ingame: support: title: 製作者をサポート desc: 余暇に制作しています! + achievements: + title: アチーブメント + desc: 取り尽くせ! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: - name: ベルト、ディストリビュータとトンネル + name: ベルト、分配機とトンネル description: スピード x<currentMult> → x<newMult> miner: - name: 抽出機 + name: 抽出 description: スピード x<currentMult> → x<newMult> processors: name: 切断、回転と積み重ね description: スピード x<currentMult> → x<newMult> painting: - name: 混合と着色 + name: 混色と着色 description: スピード x<currentMult> → x<newMult> buildings: hub: @@ -401,28 +485,28 @@ buildings: cutter: default: name: 切断機 - description: 形を上下の直線で切断し、双方を出力します。<strong>もしひとつの出力しか使わない場合、他の出力を破棄しないと出力が詰まって停止することに注意してください!</strong> + description: 形を垂直に切断し、双方を出力します。<strong>ひとつの出力しか使わない場合、他の出力を破棄しないと詰まって停止してしまうことに注意してください!</strong> quad: name: 切断機 (四分割) - description: 形を四分割します。<strong>もしひとつの出力しか使わない場合、他の出力を破棄しないと出力が詰まって停止することに注意してください!</strong> + description: 形を四分割します。<strong>ひとつの出力しか使わない場合、他の出力を破棄しないと詰まって停止してしまうことに注意してください!</strong> rotater: default: name: 回転機 - description: 形を時計回り方向に90度回転します。 + description: 形を時計回りに90度回転します。 ccw: name: 回転機 (逆) - description: 形を反時計回り方向に90度回転します。 + description: 形を反時計回りに90度回転します。 rotate180: name: 回転機 (180度) description: 形を180度回転します。 stacker: default: name: 積層機 - description: 入力アイテムを積み重ねます。もしうまく統合できなかった場合は、右の入力アイテムを左の入力アイテムの上に重ねます。 + description: 入力アイテムを積み重ねます。可能なら同じレイヤーに統合し、そうでなければ右の入力アイテムを左の入力アイテムの上に重ねます。 mixer: default: - name: 混合機 - description: 2つの色を加算混合で混ぜ合わせます。 + name: 混色機 + description: 2つの色を加法混色で混ぜ合わせます。 painter: default: name: 着色機 @@ -432,10 +516,10 @@ buildings: description: 左から入力された形の全体を、下から入力された色で着色します。 double: name: 着色機 (ダブル) - description: 左から入力された形を、上から入力された色で着色します。 + description: 左から入力された複数の形を、上から入力された色で着色します。 quad: name: 着色機 (四分割) - description: 入力された形を四分割づつ別の色で塗り分けられます。 + description: 入力された形の四部分をそれぞれ別の色で塗り分けられます。 <strong>真らしい信号</strong>が流れているスロットのみがペイントされます! trash: default: @@ -495,8 +579,8 @@ buildings: description: 入力された信号をディスプレイに表示します。 形状、色、真偽値のいずれでも可能です。 reader: default: - name: ベルトリーダ - description: 平均スループットを計測できます。 アンロック後は、 最後に通過したアイテムの情報を出力します。 + name: ベルトリーダー + description: 平均スループットを計測できます。 ワイヤレイヤのアンロック後は、 最後に通過したアイテムの情報を出力します。 analyzer: default: name: 形状解析機 @@ -511,7 +595,7 @@ buildings: description: 形状の信号を2つに切断できます。 rotater: name: 仮想回転機 - description: 形状の信号を時計回り、反時計回りに回転させます。 + description: 形状の信号を時計回りに回転させます。 unstacker: name: 仮想分離機 description: 形状の信号の最上層を右側に出力し、残りの層を左側に出力します。 @@ -525,128 +609,118 @@ buildings: default: name: なんでも抽出機 description: サンドボックスモードでのみ使用可能で、ワイヤレイヤーで与えられた信号の形状を通常レイヤーに出力します。 + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: 形の切断 - desc: - <strong>切断機</strong>が利用可能になりました。これは入力された形を、<strong>向きを考慮せず上下の直線で</strong>半分に切断します。<br><br>利用しない側の出力に注意しましょう。破棄するなどをしない限り<strong>詰まって停止してしまいます</strong> + desc: <strong>切断機</strong>が利用可能になりました。これは入力された形を、<strong>向きを考慮せず上下の直線で</strong>半分に切断します! <br><br>利用しない側の出力に注意しましょう、破棄しなければ<strong>詰まって停止してしまいます。</strong> - このために<strong>ゴミ箱</strong>も用意しました。入力アイテムをすべて破棄できます! reward_rotater: title: 回転 - desc: <strong>回転機</strong>が利用可能になりました。形を時計回り方向に90度回転させます。 + desc: <strong>回転機</strong>が利用可能になりました! 形を時計回り方向に90度回転させます。 reward_painter: title: 着色 - desc: "<strong>着色機</strong>が利用可能になりました。(今まで形状でやってきた方法で)色を抽出し、 - 形状と合成することで着色します!<br><br>追伸: もし色覚特性をお持ちでしたら、 - 設定に<strong>色覚特性モード</strong>があります!" + desc: "<strong>着色機</strong>が利用可能になりました。(今まで形状でやってきた方法で)色を抽出し、形状と合成することで着色します! <\ + br><br>追伸: もし色覚特性をお持ちでしたら、 設定に<strong>色覚特性モード</strong>があります!" reward_mixer: - title: 色の混合 - desc: <strong>混合機</strong>が利用可能になりました。 - - この建造物は2つの色を<strong>加算混合で</strong>混ぜ合わせます。 + title: 混色 + desc: <strong>混色機</strong>が利用可能になりました。この建造物は2つの色を<strong>加法混色で</strong>混ぜ合わせます! reward_stacker: title: 積層機 - desc: <strong>積層機</strong>で形を組み合わせ可能になりました。双方の入力を組み合わせ、もし連続した形になっていればそれらは<strong>融合してひとつ</strong>になります! もしできなかった場合は、左の入力の<strong>上に右の入力が重なります。</strong> + desc: <strong>積層機</strong>で形を組み合わせ可能になりました! 双方の入力を組み合わせ、連続した形になっていればそれらは<strong>融合してひとつ</strong>になります。そうでなければ、左の入力の<strong>上に右の入力が重なります!</strong> reward_balancer: title: 分配機/合流機 - desc: 多機能な<strong>分配機/合流機</strong>が利用可能になりました - より - 大規模な工場を構築するため、複数のベルト間で<strong>アイテムを合流、 - 分配</strong>できます! + desc: 多機能な<strong>分配機/合流機</strong>が利用可能になりました。より大規模な工場を構築するため、複数のベルト間で<strong>アイテムを合流、分配</strong>できます! reward_tunnel: title: トンネル - desc: <strong>トンネル</strong>が利用可能になりました。 - 他のベルトや建造物の地下を通してベルトが配置可能です! + desc: <strong>トンネル</strong>が利用可能になりました。他のベルトや建造物の地下を通してベルトが配置可能です! reward_rotater_ccw: title: 反時計回りの回転 - desc: <strong>回転機</strong>のバリエーションが利用可能になりました。 - - 反時計回りの回転ができるようになります! 回転機を選択し、<strong>'T'キーを押すことで方向の切り替えができます</strong> + desc: <strong>回転機</strong>のバリエーションが利用可能になりました。反時計回りの回転ができるようになります! 回転機を選択し、<strong>'T'キーを押すことで方向の切り替えができます。</strong> reward_miner_chainable: title: 連鎖抽出機 - desc: "<strong>連鎖抽出機</strong>が利用可能になりました!他の - 他の抽出機に<strong>出力を渡す</strong>ことができるので、 - 資源の抽出がより効率的になります!<br><br> 補足: ツールバーの - 旧い抽出機が置き換えられました!" + desc: "<strong>連鎖抽出機</strong>が利用可能になりました! 他の抽出機に<strong>出力を渡す</strong>ことができるので、 + 資源の抽出がより効率的になります!<br><br> 補足: ツールバーの 旧い抽出機が置き換えられました!" reward_underground_belt_tier_2: title: トンネル レベルII desc: <strong>トンネル</strong>のバリエーションが利用可能になりました。 - - <strong>距離拡張版が追加され</strong>、以前のものと組み合わせて目的に応じて利用することができます! + <strong>距離拡張版が追加され</strong>、以前のものと組み合わせて目的に応じて利用できます! reward_merger: title: コンパクトな合流機 - desc: <strong>合流機</strong>の<strong>コンパクトバージョン</strong>が利用可能になりました! - - 2つの入力を1つの出力に合流させます! + desc: <strong>合流機</strong>の<strong>コンパクトバージョン</strong>が利用可能になりました! 2つの入力を1つの出力に合流させます! reward_splitter: title: コンパクトな分配機 - desc: <strong>分配機</strong>の<strong>コンパクトバージョン</strong>が利用可能になりました! - - 1つの入力を2つの出力に分配します! + desc: <strong>分配機</strong>の<strong>コンパクトバージョン</strong>が利用可能になりました! 1つの入力を2つの出力に分配します! reward_belt_reader: - title: ベルトリーダ - desc: <strong>ベルトリーダ</strong>が利用可能になりました!ベルトのスループットを計測できます。<br><br>ワイヤーのロックが解除されれば、より便利になります! + title: ベルトリーダー + desc: <strong>ベルトリーダー</strong>が利用可能になりました! ベルトのスループットを計測できます。<br><br>ワイヤ関連の機能がアンロックされれば、より便利になります! reward_cutter_quad: - title: 四分割 + title: 四分割切断機 desc: <strong>切断機</strong>のバリエーションが利用可能になりました。 - - 上下の二分割ではなく、<strong>四分割</strong>に切断できます! + 左右二分割ではなく、<strong>四つ</strong>に切断できます! reward_painter_double: title: 着色機 (ダブル) desc: <strong>着色機</strong>のバリエーションが利用可能になりました。 - 通常の着色機と同様に機能しますが、ひとつの色の消費で<strong>一度に2つの形</strong>を着色処理できます! reward_storage: - title: 余剰の貯蓄 - desc: - <strong>ゴミ箱</strong>のバリエーションが利用可能になりました。 - 容量上限までアイテムを格納することができます!<br><br> + title: ストレージ + desc: <strong>ストレージ</strong>が利用可能になりました。 - 容量上限までアイテムを格納できます!<br><br> 左側の出力を優先するため、<strong>オーバーフローゲート</strong>としても使用できます! reward_blueprints: title: ブループリント - desc: >- - 工場の建造物の<strong>コピー&ペースト</strong>が利用可能になりました! - 範囲選択(CTRLキーを押したままマウスドラッグ)した状態で、'C'キーを押すことでコピーができます。<br><br>ペーストは<strong>タダではありません。</strong><strong>ブループリントの形</strong>を生産することで可能になります!(たった今納品したものです) + desc: 工場の建造物の<strong>コピー&ペースト</strong>が利用可能になりました! + 範囲選択(CTRLキーを押したままマウスドラッグ)した状態で、'C'キーを押すことでコピーができます。<br><br>ただしペーストは<strong>タダではありません。</strong><strong>ブループリントの形</strong>を生産する必要があります!(たった今納品した形です) reward_rotater_180: - title: 180度の回転 - desc: <strong>回転機</strong>のバリエーションが利用可能になりました! 180度の回転ができるようになります!(サプライズ! :D) + title: 回転(180°) + desc: <strong>回転機</strong>のバリエーションが利用可能になりました! 180°の回転ができるようになります!(サプライズ! :D) reward_wires_painter_and_levers: title: ワイヤ&着色機(四分割) desc: "<strong>ワイヤレイヤ</strong>が利用可能になりました: これは通常の - レイヤーの上にある別のレイヤであり、多くの新しい要素が - あります!<br><br> 最初に、<strong>四色 - 着色機</strong>が利用可能になりました - 着色するスロットをワイヤレイヤで - 接続します!<br><br> ワイヤレイヤに切り替えるには、 - <strong>E</strong>を押します。 <br><br> 補足: 設定で<strong>ヒントを有効にする</strong>と、 - ワイヤのチュートリアルが有効になります。" + レイヤーの上にある別のレイヤであり、多くの新しい要素があります!<br><br> + まず最初に、<strong>四色着色機</strong>が利用可能になりました - + 着色するスロットをワイヤレイヤで接続してください!<br><br> + ワイヤレイヤに切り替えるには、<strong>E</strong>を押します。 <br><br> 補足: + 設定で<strong>ヒントを有効にする</strong>と、 ワイヤのチュートリアルが有効になります。" reward_filter: title: アイテムフィルタ - desc: - <strong>アイテムフィルタ</strong>が利用可能になりました! ワイヤレイヤの信号と一致するかどうかに応じて、 - アイテムを上部または右側の出力に分離します。<br><br>真偽値(0/1)信号を利用することで - どんなアイテムでも通過させるか、または通過させないかを選ぶこともできます。 + desc: <strong>アイテムフィルタ</strong>が利用可能になりました! ワイヤレイヤの信号と一致するかどうかに応じて、アイテムを上側または右側の出力に分離します。<br><br> + また、真偽値(0/1)信号を入力すれば全てのアイテムの通過・非通過を制御できます。 reward_display: title: ディスプレイ - desc: "<strong>ディスプレイ</strong>が利用可能になりました - ワイヤレイヤで - 信号を接続することで、その内容を視認することができます!<br><br> 補足: ベルトリーダーとストレージが - 最後に通過したアイテムを出力していることに気づきましたか? それをディスプレイに - 表示してみてください!" + desc: "<strong>ディスプレイ</strong>が利用可能になりました - + ワイヤレイヤで信号を接続することで、その内容を表示できます!<br><br> 補足: + ベルトリーダーとストレージが最後に通過したアイテムを出力していることに気づきましたか? それをディスプレイに表示してみてください!" reward_constant_signal: title: 定数信号 - desc: <strong>定数信号</strong>がワイヤレイヤで - 利用可能になりました!これは例えば<strong>アイテムフィルタ</strong>に接続する - 場合に便利です。<br><br> 定数信号は - <strong>形状</strong>、<strong>色</strong>または - <strong>真偽値</strong>(1か0)を発信できます。 + desc: <strong>定数信号</strong>がワイヤレイヤで利用可能になりました! これは例えば<strong>アイテムフィルタ</strong>に接続すると便利です。<br><br> + 発信できる信号は<strong>形状</strong>、<strong>色</strong>、<strong>真偽値</strong>(1か0)です。 reward_logic_gates: title: 論理ゲート - desc: - <strong>論理ゲート</strong>が利用可能になりました! 興奮するほどでは ありませんが、これらは非常に優秀です!<br><br> - AND, OR, XOR and - NOTを計算できます!<br><br>ボーナスとして<strong>トランジスタ</strong>も追加しました! + desc: <strong>論理ゲート</strong>が利用可能になりました! 興奮する必要はありませんが、これは非常に優秀なんですよ!<br><br> + これでAND, OR, XOR, NOTを計算できます。<br><br> + ボーナスとして<strong>トランジスタ</strong>も追加しました! reward_virtual_processing: title: 仮想処理 - desc: <strong>形状処理をシミュレート</strong>できる新しい部品を沢山追加しました!<br><br> - ワイヤレイヤで切断、回転、積層をシミュレートできるようになりました。 - これからゲームを続けるにあたり、3つの方法があります:<br><br> - - <strong>完全自動化された機械</strong>を構築し、HUBが要求する形状を作成する(試してみることをオススメします!)。<br><br> + desc: <strong>形状処理をシミュレート</strong>できる新しい部品をたくさん追加しました!<br><br> + ワイヤレイヤで切断、回転、積層などをシミュレートできるようになりました! + ゲームを続けるにあたって、あなたには3つの選択肢があります:<br><br> - + <strong>完全自動化された工場</strong>を構築し、HUBが要求するあらゆる形状を作成する(試してみることをオススメします!)。<br><br> - ワイヤでイカしたものを作る。<br><br> - 今までのように工場を建設する。<br><br> いずれにしても、楽しんでください! no_reward: title: 次のレベル - desc: - "このレベルには報酬はありません。次にはあるでしょう! <br><br> 補足: すでに作った生産ラインは削除しないようにしましょう。 - - 生産された形は<strong>すべて</strong>、後に<strong>アップグレードの解除</strong>のために必要になりま\ - す!" + desc: "このレベルには報酬はありません。次はきっとありますよ! <br><br> 補足: すでに作った生産ラインは削除しないようにしましょう。 - + 生産された形は<strong>すべて</strong>、後で<strong>アップグレードの解除</strong>に必要になります!" no_reward_freeplay: title: 次のレベル desc: おめでとうございます! @@ -654,8 +728,8 @@ storyRewards: title: フリープレイ desc: やりましたね! <strong>フリープレイモード</strong>が利用可能になりました。 - これからは納品すべき形は<strong>ランダムに</strong>生成されます!<br><br> - 今後、ハブには<strong>スループット</strong>が必要になるため、要求する形状を自動的に納品するマシンを構築することを強くお勧めします!<br><br> - ハブは要求する形状をワイヤー層に出力するので、それを分析し自動的に調整する工場を作成するだけです。 + 今後、ハブは<strong>スループット</strong>を要求してきます。要求された形状を自動的に納品するマシンを構築することを強くお勧めします!<br><br> + ハブは要求する形状をワイヤレイヤに出力するので、それを分析して自動的に工場を調整するだけですよ。 reward_demo_end: title: お試し終了 desc: デモ版の最後に到達しました! @@ -713,13 +787,13 @@ settings: extremely_fast: 極速 language: title: 言語 - description: 言語を変更します。すべての翻訳はユーザーからの協力で成り立っており、まだ完全には完了していない可能性があります! + description: 言語を変更します。すべての翻訳はユーザーの皆さんの協力によるものであり、まだ不完全な可能性があります! enableColorBlindHelper: title: 色覚モード description: 色覚特性を持っていてもゲームがプレイできるようにするための各種ツールを有効化します。 fullscreen: title: フルスクリーン - description: フルスクリーンでのプレイが推奨です。スタンドアローン版のみ変更可能です。 + description: フルスクリーンでのプレイが推奨されます。スタンドアローン版のみ変更可能です。 soundsMuted: title: 効果音ミュート description: 有効に設定するとすべての効果音をミュートします。 @@ -734,13 +808,13 @@ settings: description: 音楽の音量を設定してください。 theme: title: ゲームテーマ - description: ゲームテーマを選択します。 (ライト / ダーク). + description: ゲームテーマを選択します。(ライト/ダーク) themes: dark: ダーク light: ライト refreshRate: - title: シミュレーション対象 - description: もし144hzのモニターを利用しているなら、この設定でリフレッシュレートを変更することで、ゲームが高リフレッシュレートを正しくシミュレーションします。利用しているPCが非力な場合、この設定により実効FPSが遅くなる可能性があります。 + title: リフレッシュレート + description: 秒間何回ゲームが更新されるかを設定できます。一般的には値が高いほど正確になりますが、パフォーマンスは低下します。値が低い場合、正確なスループットを計測できなくなる可能性があります。 alwaysMultiplace: title: 連続配置 description: この設定を有効にすると、建造物を選択後に意図的にキャンセルするまで選択された状態を維持します。これはSHIFTキーを押し続けている状態と同等です。 @@ -771,8 +845,7 @@ settings: description: 配置用のグリッドを無効にして、パフォーマンスを向上させます。 これにより、ゲームの見た目もすっきりします。 clearCursorOnDeleteWhilePlacing: title: 右クリックで配置をキャンセル - description: - デフォルトで有効です。建物を設置しているときに右クリックすると、選択中の建物がキャンセルされます。 + description: デフォルトで有効です。建物を設置しているときに右クリックすると、選択中の建物がキャンセルされます。 無効にすると、建物の設置中に右クリックで建物を削除できます。 lowQualityTextures: title: 低品質のテクスチャ(視認性低下) @@ -792,14 +865,18 @@ settings: description: 画面の端にカーソルを合わせることで移動できます。移動速度を設定することで、速度を変更できます。 zoomToCursor: title: カーソルに向かってズーム - description: 有効にすると、カーソルの方に向かってズームします。 - 無効にすると、画面の中央に向かってズームします。 + description: 有効にすると、カーソルの方に向かってズームします。 無効にすると、画面の中央に向かってズームします。 mapResourcesScale: title: 資源アイコンのサイズ description: ズームアウトしたときの図形のサイズを調節します。 + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. + tickrateHz: <amount> Hz keybindings: title: キー設定 - hint: "Tip: CTRL, SHIFT, ALTを利用するようにしてください。これらはそれぞれ建造物配置の際の機能があります。" + hint: "Tip: CTRL, SHIFT, ALTを活用してください。建造物配置の際の追加機能がそれぞれ割り当てられています。" resetKeybindings: キー設定をリセット categoryLabels: general: アプリケーション @@ -835,7 +912,7 @@ keybindings: cutter: 切断機 rotater: 回転機 stacker: 積層機 - mixer: 混合機 + mixer: 混色機 painter: 着色機 trash: ゴミ箱 storage: ストレージ @@ -846,7 +923,7 @@ keybindings: filter: アイテムフィルタ wire_tunnel: 交差ワイヤ display: ディスプレイ - reader: ベルトリーダ + reader: ベルトリーダー virtual_processor: 仮想切断機 transistor: トランジスタ analyzer: 形状解析機 @@ -861,27 +938,36 @@ keybindings: cycleBuildings: 建造物の選択 lockBeltDirection: ベルトプランナーを有効化 switchDirectionLockSide: "プランナー: 通る側を切り替え" - copyWireValue: "ワイヤ: カーソルに合っている形状信号をキーとしてコピー" + copyWireValue: "ワイヤ: カーソルの下の形状信号をキーとしてコピー" massSelectStart: マウスドラッグで開始 massSelectSelectMultiple: 複数範囲選択 massSelectCopy: 範囲コピー massSelectCut: 範囲カット - placementDisableAutoOrientation: 自動向き合わせ無効 + placementDisableAutoOrientation: 自動向き合わせを無効化 placeMultiple: 配置モードの維持 placeInverse: ベルトの自動向き合わせを逆転 + rotateToUp: "回転: 上向きにする" + rotateToDown: "回転: 下向きにする" + rotateToRight: "回転: 右向きにする" + rotateToLeft: "回転: 左向きにする" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: このゲームについて body: >- このゲームはオープンソースであり、<a href="https://github.com/tobspr" - target="_blank">Tobias Springer</a> (私)によって開発されています。<br><br> + target="_blank">Tobias Springer</a> (私です)によって開発されています。<br><br> - 開発に参加したい場合は以下をチェックしてみてください。<a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> + 開発に参加したい場合はこちらをチェックしてみてください:<a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> - このゲームはdiscordでの素晴らしいコミュニティなしには実現しませんでした。 - このサーバにも是非参加してください! <a href="<discordlink>" target="_blank">Discord server</a>!<br><br> + このゲームは素晴らしいDiscordコミュニティなしには実現しませんでした。 - このサーバにも是非参加してください! <a href="<discordlink>" target="_blank">Discord server</a>!<br><br> - サウンドトラックは<a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a>により製作されました。 - 彼は素晴らしいです<br><br> + サウンドトラックは<a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a>により製作されました。 - 彼は素晴らしいです。<br><br> - 最後に、私の最高の友人<a href="https://github.com/niklas-dahl" target="_blank">Niklas</a>に大きな感謝を。 - 彼とのFactorioのゲーム体験がなければ、このゲームは存在しませんでした。 + 最後に、私の最高の友人<a href="https://github.com/niklas-dahl" target="_blank">Niklas</a>に大きな感謝を。 - 彼とのFactorioのゲーム体験がなければ、このゲームは存在しなかったでしょう。 changelog: title: 更新履歴 demo: @@ -894,58 +980,143 @@ demo: settingNotAvailable: デモ版では利用できません。 tips: - ハブは現在指定されている形状だけではなく、あらゆる種類の入力を受け付けることができます。 - - あなたの工場が拡張可能か確認してください - あとで報われるでしょう! - - ハブのすぐ近くに建設しないでください。ぐちゃぐちゃになりますよ。 + - あなたの工場が部品単位で増築可能か確認してください。あとできっと役に立ちます! + - ハブのすぐ近くに建設しないでください。あとでぐちゃぐちゃになりますよ! - 積層が上手く行かない場合は、入力を入れ替えてみてください。 - <b>R</b>を押すと、ベルトプランナーの経由方向を切り替えることができます。 - <b>CTRL</b>を押したままドラッグすると、向きを保ったままベルトを設置できます。 - - アップグレードが同じティアなら、お互いの比率は同じです。 + - アップグレード段階が同じなら、比率も同じに保たれます。 - 直列処理は、並列処理より効率的です。 - 後半になると、より多くの建物のバリエーションを解除できます。 - <b>T</b>を押すと、建物のバリエーションを切り替えることができます。 - 対称性が重要です! - - ティアの違うトンネル同士は、同じラインに重ねることができます。 - - コンパクトに工場を作ってみてください - あとで報われるでしょう! + - 別の種類のトンネル同士は、同じラインに重ねることができます。 + - コンパクトに工場を作ってみてください。あとできっと役に立ちます! - 着色機には鏡写しのバリエーションがあり、<b>T</b>で選択できます。 - - 適切な比率で建設することで、効率が最大化できます。 + - 適切な比率で建設することで、効率を最大化できます。 - 最大レベルでは、1つのベルトは5つの抽出機で満たすことができます。 - - トンネルを忘れないでください。 - - 最大限の効率を得るためには、アイテムを均等に分割する必要はありません。 - - <b>SHIFT</b>を押したままベルトを設置するとベルトプランナーが有効になり、 - - 切断機は向きを考慮せず、常に垂直に切断します。 - - 白を作るためには、3色全てを混ぜます。 - - ストレージは優先出力を優先して出力します。 - - 増築可能なデザインを作るために時間を使ってください - それには価値があります! - - <b>SHIFT</b>を使用すると複数の建物を配置できます。 - - <b>ALT</b>を押しながらベルトを設置すると、逆向きに設置できます。 - - 効率が重要です! + - トンネルを忘れないでください! + - アイテムを均等に分割することは、最大効率を得るために必須ではありません。 + - <b>SHIFT</b>を押したままにするとベルトプランナーが有効になり、長距離のベルトを簡単に配置できます。 + - 切断機は配置された向きを考慮せず、常に垂直に切断します。 + - ストレージは左側の出力を優先します。 + - 増築可能なデザインを作るために時間を使ってください。それだけの価値があります! + - Invest time to build repeatable designs - it's worth it! + - <b>ALT</b>を押しながらベルトを設置すると、向きを逆転できます。 + - You can hold <b>ALT</b> to invert the direction of placed belts. - ハブから遠くに離れるほど、形状資源はより複雑な形になります。 - - 機械の速度には上限があるので、最大効率を得るためには入力を分割します。 + - 機械の速度には上限があるので、最大効率を得るためには入力を分割してください。 - 効率を最大化するために分配機/合流機を使用できます。 - 構成が重要です。ベルトを交差させすぎないようにしてください。 - 事前設計が重要です。さもないとぐちゃぐちゃになりますよ! - - 旧い工場を撤去しないでください!アップグレードを行うために、それらが必要になります。 - - 助けなしでレベル20をクリアしてみてください! - - 複雑にしないでください。単純に保つことができれば、成功することができるでしょう。 - - ゲームの後半で工場を再利用する必要があるかもしれません。 - - 積層機を使用することなく、必要な形状資源を発見することができるかもしれません。 - - 完全な風車の形は資源としては生成されません。 + - 古い工場を撤去しないでください! 各種アップグレードに必要になります。 + - 自力でレベル20やレベル26をクリアしてみてください! + - 複雑にしないでください。単純に保つことが成功の秘訣です。 + - あとで工場を再利用する必要が出てくるかもしれません。 + - 積層機を使用することなく、必要な形状資源を発見できるかもしれません。 + - 完全な風車の形状は資源としては生成されません。 - 最大の効率を得るためには、切断する前に着色をしてください。 - - モジュールとは、知覚こそが空間を生むものである。これは、人間である限り。 - - 工場の設計図を蓄えておいてください。それらを再利用することで、新たな工場が作成できます。 - - 混合機をよく見ると、色の混ぜ方が解ります。 - - <b>CTRL</b> + クリックで範囲選択ができます。 - - ハブに近すぎる設計物を作ると、のちの設計の邪魔になる可能性があります。 - - アップグレードリストの各形状の横にあるピンのアイコンは、それを画面左に固定します。 - - 原色全てを混ぜ合わせると白になります! + - モジュールがあれば、空間はただの認識に過ぎなくなる――生ある人間に対する気遣いだ。 + - 設計図としての工場を別に作っておくと、工場のモジュール化において重要な役割を果たします。 + - 混色機をよく見ると、色の混ぜ方が解ります。 + - Have a closer look at the color mixer, and your questions will be answered. + - Use <b>CTRL</b> + Click to select an area. + - アップグレードリストの各形状の横にあるピンのアイコンは、その形状を画面左に固定表示します。 + - 三原色全てを混ぜ合わせると白になります! - マップは無限の広さがあります。臆せずに拡張してください。 - - Factorioもプレイしてみてください!私のお気に入りのゲームです。 - - 切断機(四分割)は右上から時計回りに切断します! + - Factorioもプレイしてみてください! 私のお気に入りのゲームです。 + - 切断機(四分割)は右上から時計回りに切断します。 - メインメニューからセーブデータを保存できます! - - このゲームには便利なキーバインドがたくさんあります!設定ページを見てみてください。 - - このゲームにはたくさんの設定があります!是非チェックしてみてください! - - ハブを示すマーカーには、その方向を示す小さなコンパスがあります。 - - ベルトをクリアするには、範囲選択して同じ場所に貼り付けをします。 - - F4を押すことで、FPSとTickレートを表示することができます。 - - F4を2回押すと、マウスとカメラの座標を表示することができます。 - - 左のピン留めされた図形をクリックして、固定を解除できます。 + - このゲームには便利なキーバインドがたくさんあります! 設定ページを見てみてください。 + - このゲームにはたくさんの設定があります。是非チェックしてみてください! + - ハブのマーカーには、その方向を示す小さなコンパスがついています。 + - ベルトの中身をクリアするには、範囲選択して同じ場所に貼り付けをします。 + - F4を押すことで、FPSとTickレートを表示できます。 + - F4を2回押すと、マウスとカメラの座標を表示できます。 + - 左のピン留めされた図形をクリックすると、固定を解除できます。 + - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-kor.yaml b/translations/base-kor.yaml index ca2f2cf3..c8747f34 100644 --- a/translations/base-kor.yaml +++ b/translations/base-kor.yaml @@ -8,38 +8,14 @@ steamPage: 심지어 그것만으로는 충분하지 않을 겁니다. 수요는 기하급수적으로 늘어나게 될 것이고, 더욱 복잡한 도형을 더욱 많이 생산하여야 하므로, 유일하게 도움이 되는 것은 끊임없이 확장을 하는 것입니다! 처음에는 단순한 도형만을 만들지만, 나중에는 색소를 추출하고 혼합하여 도형에 색칠을 해야 합니다! Steam에서 게임을 구매하여 정식 버전의 콘텐츠를 사용하실 수 있지만, 먼저 Shapez.io의 체험판 버전을 플레이해보시고 구매를 고려하셔도 됩니다! - title_advantages: 정식 버전의 장점 - advantages: - - <b>새로운 12 레벨</b>의 추가로 총 26레벨까지 - - 완벽한 자동화를 위한 <b>새로운 18개의 건물</b>! - - <b>20 티어 업그레이드</b>로 오랫동안 즐겨보세요! - - <b>전선 업데이트</b>로 완전히 새로운 차원을 접해보세요! - - <b>다크 모드</b>! - - 무한한 세이브 파일 - - 무한한 마커 - - 저를 지원해주세요! ❤️ - title_future: 계획된 콘텐츠 - planned: - - 청사진 라이브러리 - - Steam 도전과제 - - 퍼즐 모드 - - 미니맵 - - 모드 - - 샌드박스 모드 - - ... 그리고 더 다양한 것까지! - title_open_source: 이 게임은 오픈 소스입니다! - title_links: 링크 - links: - discord: 공식 Discord - roadmap: 로드맵 - subreddit: Subreddit - source_code: 소스 코드 (GitHub) - translate: 번역에 도움주세요 - text_open_source: >- - 누구나 번역에 기여하실 수 있으며, 저는 커뮤니티에서 적극적으로 참여하여 모든 제안을 검토하고 가능한 모든 피드백도 고려하고자 - 합니다. - - 모든 로드맵을 보시려면 저의 trello 보드를 참고해주세요. + what_others_say: shapez.io에 대한 의견들 + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: 불러오는 중 error: 오류 @@ -71,6 +47,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: 로그인 중 demoBanners: title: 체험판 버전 intro: 정식 버전을 구매해서 모든 콘텐츠를 사용해 보세요! @@ -90,6 +67,11 @@ mainMenu: madeBy: 제작 <author-link> subreddit: Reddit savegameUnnamed: 이름 없음 + puzzleMode: 퍼즐 모드 + back: Back + puzzleDlcText: 공장의 크기를 줄이고 최적화하는 데 관심이 많으신가요? 지금 퍼즐 DLC를 구입하세요! + puzzleDlcWishlist: 지금 찜 목록에 추가하세요! + puzzleDlcViewNow: DLC 보러 가기 dialogs: buttons: ok: 확인 @@ -103,6 +85,9 @@ dialogs: viewUpdate: 업데이트 보기 showUpgrades: 업그레이드 보기 showKeybindings: 조작법 보기 + retry: 재시작 + continue: 계속하기 + playOffline: 오프라인 플레이 importSavegameError: title: 가져오기 오류 text: "세이브 파일을 가져오지 못했습니다:" @@ -186,8 +171,64 @@ dialogs: desc: 현재 레벨에서 사용할 수 있는 튜토리얼 비디오가 있습니다! 보시겠습니까? tutorialVideoAvailableForeignLanguage: title: 활성화된 튜토리얼 - desc: 현재 레벨에서 사용할 수 있는 튜토리얼 비디오가 있습니다! 허나 영어로만 - 제공될 것입니다. 보시겠습니까? + desc: 현재 레벨에서 사용할 수 있는 튜토리얼 비디오가 있습니다! 허나 영어로만 제공될 것입니다. 보시겠습니까? + editConstantProducer: + title: 아이템 설정 + puzzleLoadFailed: + title: 퍼즐 불러오기 실패 + desc: "불행히도 이 퍼즐은 불러오는데 실패하였습니다:" + submitPuzzle: + title: 퍼즐 보내기 + descName: "퍼즐에 이름을 지어 주세요:" + descIcon: "퍼즐의 아이콘으로 보여지게 될 짧은 단어를 지정해 주세요. (<link>이곳</link>에서 생성하시거나, 아래 랜덤한 모양 + 중 하나를 선택하세요):" + placeholderName: 퍼즐 제목 + puzzleResizeBadBuildings: + title: 크기 조절 불가능 + desc: 몇몇 건물이 구역 밖으로 벗어나게 되므로 크기를 조절할 수 없습니다. + puzzleLoadError: + title: 잘못된 퍼즐 + desc: "퍼즐을 불러올 수 없었습니다:" + offlineMode: + title: 오프라인 모드 + desc: 서버에 접속할 수 없었으므로 오프라인 모드로 게임이 시작되었습니다. 인터넷 연결 상태를 다시 한번 확인해 주세요. + puzzleDownloadError: + title: 다운로드 오류 + desc: "퍼즐을 다운로드할 수 없습니다:" + puzzleSubmitError: + title: 전송 오류 + desc: "퍼즐을 전송할 수 없습니다:" + puzzleSubmitOk: + title: 퍼즐 공개됨 + desc: 축하합니다! 퍼즐이 업로드되었고 이제 다른 사람이 플레이할 수 있습니다. "내 퍼즐" 섹션에서 찾으실 수 있습니다. + puzzleCreateOffline: + title: 오프라인 모드 + desc: 오프라인 모드임으로 퍼즐을 저장하거나 업로드할 수 없습니다. 그래도 계속하시겠습니까? + puzzlePlayRegularRecommendation: + title: 권장 사항 + desc: 퍼즐 DLC 플레이시 소개되지 않은 요소를 접하시게 될 수 있으므로, 적어도 일반 게임을 12레벨까지 플레이하시는것을 + <strong>강력히</strong> 권장드립니다. 그래도 계속하시겠습니까? + puzzleShare: + title: 짧은 키 복사됨 + desc: 퍼즐의 짧은 키 (<key>) 가 클립보드에 복사되었습니다! 메인 메뉴에서 퍼즐 접근 시 사용할 수 있습니다. + puzzleReport: + title: 퍼즐 신고 + options: + profane: 부적절함 + unsolvable: 풀 수 없음 + trolling: 낚시성 + puzzleReportComplete: + title: 피드백을 보내주셔서 감사드립니다! + desc: 퍼즐이 신고되었습니다. + puzzleReportError: + title: 신고 실패 + desc: "오류로 신고가 처리되지 못했습니다:" + puzzleLoadShortKey: + title: 짧은 키 입력 + desc: 불러올 퍼즐의 짧은 키를 입력해 주세요. + puzzleDelete: + title: 퍼즐을 지우시겠습니까? + desc: 정말로 퍼즐:'<title>'을 지우시겠습니까? 이것은 돌릴수 없습니다! ingame: keybindingsOverlay: moveMap: 이동 @@ -209,6 +250,7 @@ ingame: clearSelection: 지우기 pipette: 피펫 switchLayers: 레이어 전환 + clearBelts: 벨트 청소하기 buildingPlacement: cycleBuildingVariants: <key> 키를 눌러 변형 전환 hotkeyLabel: "단축키: <key>" @@ -278,28 +320,23 @@ ingame: 1_3_expand: "이 게임은 방치형 게임이 <strong>아닙니다</strong>! 더 많은 추출기와 벨트를 만들어 지정된 목표를 빨리 달성하세요.<br><br> 팁: <strong>SHIFT</strong> 키를 누른 상태에서는 빠르게 배치할 수 있고, <strong>R</strong> 키를 눌러 회전할 수 있습니다." - 2_1_place_cutter: "이제 <strong>절단기</strong>를 배치하여 원형 도형을 둘로 자르세요!<br><br> - 추신: 절단기는 방향에 관계 없이 항상 수직으로 자릅니다." + 2_1_place_cutter: "이제 <strong>절단기</strong>를 배치해 원형 도형을 반으로 잘라보세요!<br><br> 참고: + 절단기는 놓는 방향에 상관없이 항상 <strong>위에서 아래로만</strong> 자릅니다." 2_2_place_trash: 절단기가 <strong>막히거나 멈출 수 있습니다</strong>!<br><br> - <strong>휴지통</strong>을 사용하여 현재 필요없는 쓰레기 도형 (!)을 - 제거하세요. - 2_3_more_cutters: "잘하셨습니다! 느린 처리 속도를 보완하기 위해 <strong>절단기를 두 개</strong> - 이상 배치해보세요!<br><br> 추신: <strong>상단 숫자 단축키 (0~9)</strong>를 사용하여 - 건물을 빠르게 선택할 수 있습니다!" - 3_1_rectangles: "이제 사각형 도형을 추출해 볼까요! <strong>추출기 네 개를 - 배치</strong>하고 허브와 연결하세요.<br><br> 추신: 긴 벨트 한 줄을 - 간단히 만들려면 <strong>SHIFT 키</strong>를 누른 채 드래그하세요!" + <strong>휴지통</strong>을 사용하여 현재 필요없는 쓰레기 도형 (!)을 제거하세요. + 2_3_more_cutters: "잘하셨습니다! 느린 처리 속도를 보완하기 위해 <strong>절단기를 두 개</strong> 이상 + 배치해보세요!<br><br> 추신: <strong>상단 숫자 단축키 (0~9)</strong>를 사용하여 건물을 + 빠르게 선택할 수 있습니다!" + 3_1_rectangles: "이제 사각형 도형을 추출해 볼까요! <strong>추출기 네 개를 배치</strong>하고 허브와 + 연결하세요.<br><br> 추신: 긴 벨트 한 줄을 간단히 만들려면 <strong>SHIFT 키</strong>를 + 누른 채 드래그하세요!" 21_1_place_quad_painter: <strong>4단 색칠기</strong>를 배치하여 <strong>흰색</strong>과 - <strong>빨간색</strong>이 칠해진 <strong>원형 - 도형</strong>을 만들어보세요! - 21_2_switch_to_wires: <strong>E 키</strong>를 눌러 전선 레이어 - 로 전환하세요!<br><br> 그 후 색칠기의 <strong>네 입력 부분</strong>을 - 모두 케이블로 연결하세요! - 21_3_place_button: 훌륭해요! 이제 <strong>스위치</strong>를 배치하고 전선으로 - 연결하세요! - 21_4_press_button: "스위치를 눌러 </strong>참 신호를 내보내<strong> - 색칠기를 활성화하세요. 추신: 모든 입력을 연결할 필요는 없습니다! - 지금은 두 개만 연결하세요." + <strong>빨간색</strong>이 칠해진 <strong>원형 도형</strong>을 만들어보세요! + 21_2_switch_to_wires: <strong>E 키</strong>를 눌러 전선 레이어 로 전환하세요!<br><br> 그 후 색칠기의 + <strong>네 입력 부분</strong>을 모두 케이블로 연결하세요! + 21_3_place_button: 훌륭해요! 이제 <strong>스위치</strong>를 배치하고 전선으로 연결하세요! + 21_4_press_button: "스위치를 눌러서 색칠기에 <strong>참 신호를 보내</strong> 활성화해보세요.<br><br> 추신: + 모든 입력을 연결할 필요는 없습니다! 두개만 연결해 보세요." colors: red: 빨간색 green: 초록색 @@ -332,9 +369,6 @@ ingame: buildings: title: 새로운 18개의 건축물 desc: 완벽한 자동화된 공장을 위한 건물들입니다! - savegames: - title: 무한한 세이브 파일 - desc: 당신이 내키는대로 마음껏 할 수 있습니다! upgrades: title: 20 티어까지 확장된 업그레이드 desc: 체험판에서는 5 티어까지만 사용할 수 있습니다! @@ -350,6 +384,44 @@ ingame: support: title: 저를 지원해주세요 desc: 저는 여가 시간에 게임을 개발합니다! + achievements: + title: 도전 과제 + desc: 모두 잡아 보세요! + puzzleEditorSettings: + zoneTitle: 구역 + zoneWidth: 너비 + zoneHeight: 높이 + trimZone: 자르기 + clearItems: 아이템 초기화 + share: 공유 + report: 신고 + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: 퍼즐 생성기 + instructions: + - 1. <strong>일정 생성기</strong>를 배치해 플레이어가 사용할 색깔과 모양 을 생성하세요 + - 2. 플레이어가 나중에 만들 모양을 하나 이상 만들어 <strong>목표 수집기</strong> 로 배달하도록 만드세요 + - 3. 목표 수집기가 모양을 일정 양 이상 수집하면 그것은 플레이어가 반드시 <strong>생산해야 할 목표 + 모양</strong>으로 저장합니다 (<strong>초록색 뱃지</strong> 로 표시됨) + - 4. 건물의 <strong>잠금 버튼</strong>을 눌러서 비활성화하세요 + - 5. 리뷰 버튼을 누르면 퍼즐이 검증되고 업로드할수 있게 됩니다. + - 6. 공개시, 생성기와 목표 수집기를 제외한 <strong>모든 건물이</strong> 제거됩니다 - 그 부분이 바로 + 플레이어가 스스로 알아내야 하는 것들이죠 :) + puzzleCompletion: + title: 퍼즐 완료됨! + titleLike: "퍼즐이 좋았다면 하트를 눌러주세요:" + titleRating: 퍼즐의 난이도는 어땠나요? + titleRatingDesc: 당신의 평가는 제가 미래에 더 나은 평가를 만들수 있도록 도울 수 있습니다. + continueBtn: 계속 플레이하기 + menuBtn: 메뉴 + nextPuzzle: Next Puzzle + puzzleMetadata: + author: 제작자 + shortKey: 짧은 키 + rating: 난이도 + averageDuration: 평균 플레이 시간 + completionRate: 완료율 shopUpgrades: belt: name: 벨트, 밸런서, 터널 @@ -467,7 +539,7 @@ buildings: constant_signal: default: name: 일정 신호기 - description: 모양, 색상, 또는 불 값 (1 또는 0) 상수 신호를 방출합니다. + description: 모양, 색상, 또는 불 값 (1 또는 0)이 될 수 있는 일정한 신호를 방출합니다. lever: default: name: 스위치 @@ -534,6 +606,18 @@ buildings: default: name: 아이템 생성기 description: 샌드박스 모드에서만 사용할 수 있는 아이템으로, 일반 레이어 위에 있는 전선 레이어에서 주어진 신호를 출력합니다. + constant_producer: + default: + name: 일정 생성기 + description: 지정한 모양이나 색깔을 일정하게 생성합니다. + goal_acceptor: + default: + name: 목표 수집기 + description: 목표 수집기로 모양을 보내 목표로 설정하세요. + block: + default: + name: 차단기 + description: 타일을 사용하지 못하게 차단합니다. storyRewards: reward_cutter_and_trash: title: 절단기 @@ -632,9 +716,10 @@ storyRewards: 있습니다.<br><br> 추신: 벨트 판독기와 저장고가 마지막으로 읽은 아이템을 출력했나요? 디스플레이로 한번 봐보세요!" reward_constant_signal: title: 일정 신호기 - desc: 전선 레이어에서 구축할 수 있는 <strong>일정 신호기</strong>가 잠금 해제되었습니다! 간단한 예시로, <strong>아이템 - 선별</strong>에 연결하여 사용하는 데 유용합니다.<br><br> 일정 신호기는 <strong>도형</strong>, - <strong>색상</strong>, 또는 <strong>불 값</strong> (1 또는 0)을 출력할 수 있습니다. + desc: 전선 레이어에서 구축할 수 있는 <strong>일정 신호기</strong>가 잠금 해제되었습니다! 간단한 예시로, + <strong>아이템 선별</strong>에 연결하여 사용하는 데 유용합니다.<br><br> 일정 신호기는 + <strong>도형</strong>, <strong>색상</strong>, 또는 <strong>불 값</strong> (1 + 또는 0)을 출력할 수 있습니다. reward_logic_gates: title: 논리 회로 desc: <strong>논리 회로</strong>가 잠금 해제되었습니다! 굳이 흥분할 필요는 없지만, 진짜 멋진 기술입니다!<br><br> @@ -649,12 +734,11 @@ storyRewards: - 평소처럼 게임을 진행합니다.<br><br> 어떤 방식으로든, 재미있게 게임을 플레이해주시길 바랍니다! reward_wires_painter_and_levers: title: 전선과 4단 색칠기 - desc: "<strong>전선 레이어</strong>가 잠금 해제되었습니다! 전선 레이어는 - 일반 레이어 위에 존재하는 별도의 레이어로, 이를 통한 다양하고 새로운 - 메커니즘을 소개하겠습니다!<br><br> 우선 <strong>4단 색칠기</strong>가 - 잠금 해제되었습니다. 전선 레이어에서 색칠하고 싶은 슬롯에 전선을 연결하세요! - 전선 레이어로 전환하려면 <strong>E</strong> 키를 누르세요. <br><br> - 추신: 설정에서 <strong>힌트를 활성화</strong>하여 전선 튜토리얼을 활성화하세요!" + desc: " 방금 <strong>전선 레이어</strong>를 활성화하셨습니다: 이것은 일반 레이어 위에 존재하는 별개의 레이어로 수많은 + 새로운 요소를 사용할 수 있습니다!<br><br> <strong>4단 색칠기</strong>를 활성화해 드리겠습니다 - + 전선 레이어에서 색을 칠할 부분에 연결해 보세요!<br><br> 전선 레이어로 전환하시려면 + <strong>E</strong>키를 눌러주세요.<br><br> 추신: <strong>힌트를 활성화</strong>해서 + 전선 튜토리얼을 활성화해 보세요!" reward_filter: title: 아이템 선별기 desc: <strong>아이템 선별기</strong>가 잠금 해제되었습니다! 전선 레이어의 신호와 일치하는지에 대한 여부로 아이템을 위쪽 @@ -791,8 +875,8 @@ settings: description: 기본적으로 활성화되어 있으며, 자원 패치에서 피펫 기능을 사용 시 즉시 추출기를 선택합니다. simplifiedBelts: title: 벨트 단순화 (못생김) - description: 성능 향상을 위해 벨트를 가리킬 때를 제외한 모든 상황에서 벨트 아이템을 렌더링하지 않습니다. 이 기능을 사용할 할 - 정도로 심각한 성능 문제가 일어나지 않는 한, 이 설정을 사용할 필요는 없습니다. + description: 성능 향상을 위해 벨트를 가리킬 때를 제외한 모든 상황에서 벨트 아이템을 렌더링하지 않습니다. 이 기능을 사용할 정도로 + 심각한 성능 문제가 일어나지 않는 한, 이 설정을 사용할 필요는 없습니다. enableMousePan: title: 화면 가장자리 패닝 description: 커서를 화면 가장자리로 옮기면 스크롤되어 지도를 이동할 수 있습니다. 스크롤 속도는 이동 속도 설정에 따릅니다. @@ -802,7 +886,12 @@ settings: mapResourcesScale: title: 지도 자원 크기 description: 지도를 축소할 때 나타나는 도형의 크기를 제어합니다. + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: 조작법 hint: "팁: CTRL, SHIFT, ALT를 적절히 사용하세요! 건물을 배치할 때 유용합니다." @@ -875,6 +964,15 @@ keybindings: comparator: 비교기 item_producer: 아이템 생성기 (샌드박스) copyWireValue: "전선: 커서 아래 값 복사" + rotateToUp: 위로 향하게 회전 + rotateToDown: 아래로 향하게 회전 + rotateToRight: 오른쪽으로 향하게 회전 + rotateToLeft: 아래쪽으로 향하게 회전 + constant_producer: 일정 생성기 + goal_acceptor: 목표 수집기 + block: 블록 + massSelectClear: 벨트 초기화 + showShapeTooltip: Show shape output tooltip about: title: 게임 정보 body: >- @@ -944,7 +1042,7 @@ tips: - 공장을 허브에 가까이 지으면 나중에 거대한 프로젝트에 방해가 될 수 있습니다. - 업그레이드 목록에 나타나는 도형 옆의 핀 아이콘을 누르면 화면에 고정됩니다. - 세 가지의 기본 색상을 모두 섞어서 흰색을 만드세요! - - 당신에겐 무한한 땅이 있습니다. 굳이 공간을 적게 쓸 필요는 없으니, 맘껏 확장하세요! + - 당신에겐 무한한 땅이 있습니다. 굳이 공간을 적게 쓸 필요는 없으니, 마음껏 확장하세요! - Factorio도 플레이 해보세요! 제가 가장 좋아하는 게임입니다. - 4단 절단기는 오른쪽 상단부터 시계 방향으로 차례로 절단합니다. - 메인 메뉴에서 세이브 파일을 다운로드 할 수 있습니다. @@ -955,3 +1053,80 @@ tips: - F4 키를 누르면 FPS와 틱 비율을 표시합니다. - F4 키를 두번 누르면 마우스와 카메라의 타일을 표시합니다. - 왼쪽에 고정된 도형을 클릭하여 고정을 해제할 수 있습니다. +puzzleMenu: + play: 플레이 + edit: 편집 + title: 퍼즐 모드 + createPuzzle: 퍼즐 만들기 + loadPuzzle: 불러오기 + reviewPuzzle: 리뷰 & 공개 + validatingPuzzle: 퍼즐 검증중 + submittingPuzzle: 퍼즐 전송중 + noPuzzles: 이 섹션에 퍼즐이 없습니다. + categories: + levels: 레벨순 + new: 최신순 + top-rated: 등급순 + mine: 내 퍼즐 + easy: 쉬움 + hard: 어러움 + completed: 완료함 + medium: 중간 + official: 공식 + trending: 오늘의 인기 + trending-weekly: 이 주의 인기 + categories: 카테고리 + difficulties: 난이도순 + account: 내 퍼즐들 + search: 검색 + validation: + title: 잘못된 퍼즐 + noProducers: 일정 생성기를 배치해주세요! + noGoalAcceptors: 목표 수집기를 배치해주세요! + goalAcceptorNoItem: 하나 이상의 목표 수집기에 아이템이 지정되지 않았습니다. 모양을 운반해서 목표를 지정해 주세요. + goalAcceptorRateNotMet: 하나 이상의 목표 수집기에 아이템이 충분하지 않습니다. 모든 수집기의 표시가 초록색인지 확인해주세요. + buildingOutOfBounds: 하나 이상의 건물이 지을 수 있는 영역 밖에 존재합니다. 영역을 늘리거나 건물을 제거하세요. + autoComplete: 퍼즐이 스스로 완료됩니다! 일정 생성기가 만든 모양이 목표 수집기로 바로 들어가고 있는건 아닌지 확인해주세요. + difficulties: + easy: 쉬움 + medium: 중간 + hard: 어려움 + unknown: Unrated + dlcHint: DLC를 이미 구입하셨나요? 라이브러리에서 shapez.io를 오른쪽 클릭한 다음 속성… > DLC 메뉴를 선택해서 + 활성화되었는지 확인해주세요. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: 너무 빠른 시간 내 작업을 반복하고 있습니다. 조금만 기다려 주세요. + invalid-api-key: 백엔드 서버와 통신할 수 없습니다. 게임을 업데이트하거나 재시작해 주세요 (잘못된 API 키). + unauthorized: 백엔드 서버와 통신할 수 없습니다. 게임을 업데이트하거나 재시작해 주세요 (인증되지 않음). + bad-token: 백엔드 서버와 통신할 수 없습니다. 게임을 업데이트하거나 재시작해 주세요 (잘못된 토큰). + bad-id: 잘못된 퍼즐 구분자. + not-found: 해당하는 퍼즐을 찾을 수 없습니다. + bad-category: 해당하는 분류를 찾을 수 없습니다. + bad-short-key: 입력한 짧은 키가 올바르지 않습니다. + profane-title: 퍼즐 제목에 부적절한 단어가 포함되어 있습니다. + bad-title-too-many-spaces: 퍼즐 제목이 너무 짧습니다. + bad-shape-key-in-emitter: 일정 생성기에 잘못된 아이템이 지정되어 있습니다. + bad-shape-key-in-goal: 목표 수집기에 잘못된 아이템이 지정되어 있습니다. + no-emitters: 퍼즐에 일정 생성기가 하나도 존재하지 않습니다. + no-goals: 퍼즐에 목표 생성기가 하나도 존재하지 않습니다. + short-key-already-taken: 이 짧은 키는 이미 사용중입니다. 다른 것을 이용해 주세요. + can-not-report-your-own-puzzle: 자신이 만든 퍼즐을 신고할 수 없습니다. + bad-payload: 요청이 잘못된 데이터를 포함하고 있습니다. + bad-building-placement: 퍼즐에 잘못된 곳에 위치한 건물이 있습니다. + timeout: 요청 시간이 초과되었습니다. + too-many-likes-already: 이 퍼즐은 이미 너무 많은 하트를 받았습니다. 그래도 제거하고 싶다면 support@shapez.io로 문의하세요! + no-permission: 이 작업을 할 권한이 없습니다. diff --git a/translations/base-lt.yaml b/translations/base-lt.yaml index f69bbc03..d9460298 100644 --- a/translations/base-lt.yaml +++ b/translations/base-lt.yaml @@ -13,39 +13,14 @@ steamPage: While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages - advantages: - - <b>12 New Level</b> for a total of 26 levels - - <b>18 New Buildings</b> for a fully automated factory! - - <b>Unlimited Upgrade Tiers</b> for many hours of fun! - - <b>Wires Update</b> for an entirely new dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. - - Be sure to check out my trello board for the full roadmap! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Loading error: Error @@ -77,6 +52,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: Demo Version intro: Get the standalone to unlock all features! @@ -96,6 +72,12 @@ mainMenu: madeBy: Made by <author-link> subreddit: Reddit savegameUnnamed: Unnamed + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -109,6 +91,9 @@ dialogs: viewUpdate: View Update showUpgrades: Show Upgrades showKeybindings: Show Keybindings + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Import Error text: "Failed to import your savegame:" @@ -205,6 +190,70 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Move @@ -226,6 +275,7 @@ ingame: clearSelection: Clear Selection pipette: Pipette switchLayers: Switch layers + clearBelts: Clear belts buildingPlacement: cycleBuildingVariants: Press <key> to cycle variants. hotkeyLabel: "Hotkey: <key>" @@ -355,9 +405,6 @@ ingame: buildings: title: 18 New Buildings desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! upgrades: title: ∞ Upgrade Tiers desc: This demo version has only 5! @@ -373,6 +420,50 @@ ingame: support: title: Support me desc: I develop it in my spare time! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Belts, Distributor & Tunnels @@ -579,6 +670,18 @@ buildings: name: Item Producer description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Cutting Shapes @@ -688,8 +791,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the @@ -901,7 +1004,12 @@ settings: title: Map Resources Size description: Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Keybindings hint: "Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different @@ -975,6 +1083,15 @@ keybindings: comparator: Compare item_producer: Item Producer (Sandbox) copyWireValue: "Wires: Copy value below cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: About this Game body: >- @@ -1060,3 +1177,88 @@ tips: - Press F4 to show your FPS and Tick Rate. - Press F4 twice to show the tile of your mouse and camera. - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index 09192564..176777e4 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -1,59 +1,34 @@ steamPage: shortText: shapez.io is een spel dat draait om het bouwen van fabrieken voor het produceren en automatiseren van steeds complexere vormen in een oneindig - groot speelveld. + grote wereld. discordLinkShort: Officiële Discord server intro: >- - Shapez.io is een spel waarin je fabrieken moet bouwen voor de - automatische productie van geometrische vormen. + Shapez.io is een spel waarin je fabrieken bouwt voor de automatische + productie van geometrische vormen. - Naarmate het spel vordert, worden de vormen complexer, en moet je uitbreiden in het oneindige speelveld. + Naarmate het spel vordert, worden de vormen complexer, en zul je moeten uitbreiden in de oneindige wereld. - En als dat nog niet genoeg is moet je ook nog eens steeds meer produceren om aan de vraag te kunnen voldoen. Het enige dat helpt is uitbreiden! + En als dat nog niet genoeg is produceer je ook nog steeds meer om aan de vraag te kunnen voldoen. Het enige dat helpt is uitbreiden! - Ondanks het feit dat je in het begin alleen vormen maakt, komt er het punt waarop je ze moet kleuren. Deze kleuren moet je vinden en mengen! + Ondanks het feit dat je in het begin alleen vormen maakt, komt er een punt waarop je ze gaat kleuren. Deze kleuren kun je vinden en mengen! - Door het spel op Steam te kopen kun je de volledige versie spelen. Je kunt echter ook een demo versie spelen op shapez.io en later beslissen - om over te schakelen zonder voortgang te verliezen. - title_advantages: Standalone Voordelen - advantages: - - <b>12 Nieuwe Levels</b> met een totaal van 26 levels - - <b>18 Nieuwe Gebouwen</b> voor een volledig geautomatiseerde fabriek! - - <b>20 Upgrade Levels</b> voor vele speeluren! - - <b>Draden Update</b> voor een volledig nieuwe dimensie! - - <b>Dark Mode</b> Donkere modus! - - Oneindig veel werelden. - - Oneindig veel Markers - - Help mij! ❤️ - title_future: Geplande Content - planned: - - Blueprint Bibliotheek (Alleen volledige versie) - - Steam Prestaties - - Puzzel Modus - - Minimap - - Mods - - Sandbox modus - - ... en nog veel meer! - title_open_source: Dit spel is open source! - title_links: Links - links: - discord: Officiële Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Hulp met vertalen - text_open_source: >- - Iedereen mag meewerken. Ik ben actief betrokken in de community en - probeer alle suggesties en feedback te beoordelen als dat nodig is. - - Zorg dat je ook mijn trello board bekijkt voor de volledige roadmap! + Door het spel op Steam te kopen kun je de volledige versie spelen. Je kunt echter ook een demo versie spelen op shapez.io en later beslissen om over te schakelen zonder voortgang te verliezen. + what_others_say: Wat anderen vinden van shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Laden error: Fout thousandsDivider: . decimalSeparator: "," suffix: - thousands: k + thousands: K millions: M billions: B trillions: T @@ -61,11 +36,11 @@ global: time: oneSecondAgo: een seconde geleden xSecondsAgo: <x> seconden geleden - oneMinuteAgo: een minuut geleden + oneMinuteAgo: één minuut geleden xMinutesAgo: <x> minuten geleden - oneHourAgo: een uur geleden + oneHourAgo: één uur geleden xHoursAgo: <x> uren geleden - oneDayAgo: een dag geleden + oneDayAgo: één dag geleden xDaysAgo: <x> dagen geleden secondsShort: <seconds>s minutesAndSecondsShort: <minutes>m <seconds>s @@ -78,38 +53,49 @@ global: escape: ESC shift: SHIFT space: SPATIE + loggingIn: Inloggen demoBanners: title: Demoversie intro: Koop de standalone om alle functies te ontgrendelen! mainMenu: play: Spelen - changelog: Changelog + changelog: Wijzigingenlijst importSavegame: Importeren openSourceHint: Dit spel is open source! discordLink: Officiële Discord-server (Engelstalig) helpTranslate: Help ons met vertalen! browserWarning: Sorry, maar dit spel draait langzaam in je huidige browser! Koop - de standalone versie of download chrome voor de volledige ervaring. + de standalone versie of download Google Chrome voor de volledige + ervaring. savegameLevel: Level <x> - savegameLevelUnknown: Onbekend Level + savegameLevelUnknown: Level onbekend continue: Ga verder newGame: Nieuw Spel madeBy: Gemaakt door <author-link> subreddit: Reddit - savegameUnnamed: Unnamed + savegameUnnamed: Naamloos + puzzleMode: Puzzel Modus + back: Terug + puzzleDlcText: Houd je van het comprimeren en optimaliseren van fabrieken? + Verkrijg de puzzel DLC nu op Steam voor nog meer plezier! + puzzleDlcWishlist: Voeg nu toe aan je verlanglijst! + puzzleDlcViewNow: Bekijk DLC dialogs: buttons: ok: OK delete: Verwijder cancel: Annuleer later: Later - restart: Herstarten + restart: Herstart reset: Reset getStandalone: Koop de Standalone deleteGame: Ik weet wat ik doe viewUpdate: Zie Update showUpgrades: Zie Upgrades showKeybindings: Zie Sneltoetsen + retry: Opnieuw Proberen + continue: Ga Verder + playOffline: Offline Spelen importSavegameError: title: Importeerfout text: "Het importeren van je savegame is mislukt:" @@ -117,19 +103,19 @@ dialogs: title: Savegame geïmporteerd text: Je savegame is succesvol geïmporteerd. gameLoadFailure: - title: Het spel is kapot + title: Corrupte savegame text: "Het laden van je savegame is mislukt:" confirmSavegameDelete: - title: Bevestig het verwijderen + title: Bevestig verwijderen van savegame text: Ben je zeker dat je het volgende spel wil verwijderen?<br><br> - '<savegameName>' op niveau <savegameLevel><br><br> Dit kan niet ongedaan worden - gemaakt! + '<savegameName>' op niveau <savegameLevel><br><br> Dit kan niet + ongedaan worden gemaakt! savegameDeletionError: title: Verwijderen mislukt text: "Het verwijderen van de savegame is mislukt:" restartRequired: title: Opnieuw opstarten vereist - text: Je moet het spel opnieuw opstarten om de instellingen toe te passen. + text: Start het spel opnieuw op om de instellingen toe te passen. editKeybinding: title: Verander sneltoetsen desc: Druk op de toets of muisknop die je aan deze functie toe wil wijzen, of @@ -160,14 +146,14 @@ dialogs: Het upgrades-tabblad staat in de rechterbovenhoek van het scherm. massDeleteConfirm: title: Bevestig verwijderen - desc: Je bent veel gebouwen aan het verwijderen (<count> om precies te zijn)! + desc: Je bent veel gebouwen aan het verwijderen (<count> om precies te zijn!) Weet je zeker dat je dit wil doen? blueprintsNotUnlocked: title: Nog niet ontgrendeld desc: Blauwdrukken zijn nog niet ontgrendeld! Voltooi meer levels om ze te ontgrendelen. keybindingsIntroduction: - title: Nuttige sneltoetsen + title: Handige sneltoetsen desc: "Dit spel heeft veel sneltoetsen die het makkelijker maken om grote fabrieken te bouwen. Hier zijn er een aantal, maar zorg dat je <strong>kijkt naar de sneltoetsen</strong>!<br><br> <code @@ -178,16 +164,16 @@ dialogs: van lopende banden om te draaien wanneer je ze plaatst.<br>" createMarker: title: Nieuwe markering - desc: Geef het een nuttige naam, Je kan ook een <strong>snel - toets</strong> van een vorm gebruiken (die je <link>here</link> kan genereren). + desc: Geef het een nuttige naam, Je kan ook een <strong>sleutel</strong> van een + vorm gebruiken (die je <link>hier</link> kunt genereren). titleEdit: Bewerk markering markerDemoLimit: desc: Je kunt maar twee markeringen plaatsen in de demo. Koop de standalone voor een ongelimiteerde hoeveelheid markeringen! massCutConfirm: title: Bevestig knippen - desc: Je bent veel gebouwen aan het knippen (<count> om precies te zijn)! Weet - je zeker dat je dit wil doen? + desc: Je bent veel vormen aan het knippen (<count> om precies te zijn)! Weet je + zeker dat je dit wil doen? exportScreenshotWarning: title: Exporteer screenshot desc: Je hebt aangegeven dat je jouw basis wil exporteren als screenshot. Als je @@ -200,31 +186,98 @@ dialogs: editSignal: title: Stel het signaal in. descItems: "Kies een ingesteld item:" - descShortKey: ... of voer de <strong>hotkey</strong> in van een vorm (Die je + descShortKey: ... of voer de <strong>sleutel</strong> in van een vorm (Die je <link>hier</link> kunt vinden). renameSavegame: title: Hernoem opgeslagen spel desc: Geef je opgeslagen spel een nieuwe naam. tutorialVideoAvailable: title: Tutorial Beschikbaar - desc: Er is een tutorial video beschikbaar voor dit level! Zou je het willen bekijken? + desc: Er is een tutorial video beschikbaar voor dit level! Zou je het willen + bekijken? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available + title: Tutorial Beschikbaar desc: Er is een tutorial beschikbaar voor dit level, maar het is alleen - beschikbaar in het Engels. Zou je het toch graag kijken? + beschikbaar in het Engels. Wil je toch een kijkje nemen? + editConstantProducer: + title: Item instellen + puzzleLoadFailed: + title: Puzzels kunnen niet geladen worden + desc: "Helaas konden de puzzels niet worden geladen:" + submitPuzzle: + title: Puzzel indienen + descName: "Geef je puzzel een naam:" + descIcon: "Voer een unieke vorm sleutel in, die wordt weergegeven als het icoon + van je puzzel (je kunt ze <link>hier</link> genereren, of je kunt er + een kiezen van de willekeurig voorgestelde vormen hieronder):" + placeholderName: Puzzel Naam + puzzleResizeBadBuildings: + title: Formaat wijzigen niet mogelijk + desc: Je kunt het gebied niet kleiner maken, want dan zouden sommige gebouwen + buiten het gebied zijn. + puzzleLoadError: + title: Foute Puzzel + desc: "De puzzel kon niet geladen worden:" + offlineMode: + title: Offline Modus + desc: We konden de server niet bereiken, het spel draait nu in de offline modus. + Zorg ervoor dat je een actieve internetverbinding heeft. + puzzleDownloadError: + title: Download fout + desc: "Downloaden van de puzzel is mislukt:" + puzzleSubmitError: + title: Indieningsfout + desc: "Het indienen van je puzzel is mislukt:" + puzzleSubmitOk: + title: Puzzel Gepubliceerd + desc: Gefeliciteerd! Je puzzel is gepubliceerd en kan nu worden gespeeld door + anderen. Je kunt het nu vinden in het gedeelte "Mijn puzzels". + puzzleCreateOffline: + title: Offline Modus + desc: Aangezien je offline bent, kun je je puzzels niet opslaan of publiceren. + Wil je nog steeds doorgaan? + puzzlePlayRegularRecommendation: + title: Aanbeveling + desc: Ik raad <strong>sterk</strong> aan om het normale spel tot niveau 12 te + spelen voordat je de puzzel-DLC probeert, anders kan je mechanica + tegenkomen die je nog niet kent. Wil je toch doorgaan? + puzzleShare: + title: Vorm Sleutel Gekopieerd + desc: De vorm sleutel van de puzzel (<key>) is naar je klembord gekopieerd! Het + kan in het puzzelmenu worden ingevoerd om toegang te krijgen tot de + puzzel. + puzzleReport: + title: Puzzel Rapporteren + options: + profane: Ongepast + unsolvable: Niet oplosbaar + trolling: Trollen + puzzleReportComplete: + title: Bedankt voor je feedback! + desc: De puzzel is gemarkeerd. + puzzleReportError: + title: Melden mislukt + desc: "Je melding kan niet worden verwerkt:" + puzzleLoadShortKey: + title: Voer een vorm sleutel in + desc: Voer de vorm sleutel van de puzzel in om deze te laden. + puzzleDelete: + title: Puzzel verwijderen? + desc: Weet je zeker dat je '<title>' wilt verwijderen? Dit kan niet ongedaan + gemaakt worden! ingame: keybindingsOverlay: - moveMap: Beweeg speelveld + moveMap: Beweeg rond de wereld selectBuildings: Selecteer gebied stopPlacement: Stop met plaatsen rotateBuilding: Draai gebouw - placeMultiple: Plaats meerdere + placeMultiple: Plaats meerderen reverseOrientation: Omgekeerde oriëntatie disableAutoOrientation: Schakel auto-oriëntatie uit - toggleHud: Aan-/Uitzetten HUD + toggleHud: HUD aan-/uitzetten placeBuilding: Plaats gebouw createMarker: Plaats markering - delete: Vernietig + delete: Verwijder pasteLastBlueprint: Plak laatst gekopieerde blauwdruk lockBeltDirection: Gebruik lopende band planner plannerSwitchSide: Draai de richting van de planner @@ -233,6 +286,7 @@ ingame: clearSelection: Annuleer selectie pipette: Pipet switchLayers: Wissel lagen + clearBelts: Lopende banden leeg maken buildingPlacement: cycleBuildingVariants: Druk op <key> om tussen varianten te wisselen. hotkeyLabel: "Hotkey: <key>" @@ -265,11 +319,11 @@ ingame: title: In opslag description: Geeft alle vormen weer die opgeslagen zijn in de HUB. produced: - title: Geproduceerd + title: Productie description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten. delivered: - title: Geleverd + title: Levering description: Geeft alle vormen weer die in de HUB worden bezorgd. noShapesProduced: Er zijn nog geen vormen geproduceerd. shapesDisplayUnits: @@ -290,48 +344,49 @@ ingame: waypoints: Markeringen hub: HUB description: Klik met de linkermuisknop op een markering om hier naartoe te - gaan, klik met de rechtermuisknop om de markering te - verwijderen.<br><br>Druk op <keybinding> om een markering te maken - in het huidige zicht, of <strong>rechtermuisknop</strong> om een - markering te maken bij het geselecteerde gebied. + gaan, klik met de rechtermuisknop om hem te verwijderen.<br><br>Druk + op <keybinding> om een markering te maken in het huidige zicht, of + <strong>rechtermuisknop</strong> om een markering te maken bij het + geselecteerde gebied. creationSuccessNotification: Markering is gemaakt. interactiveTutorial: title: Tutorial hints: 1_1_extractor: Plaats een <strong>ontginner</strong> op een - <strong>cirkelvorm</strong> om deze te onttrekken! + <strong>cirkelvorm</strong> om deze te ontginnen! 1_2_conveyor: "Verbind de ontginner met een <strong>lopende band</strong> aan je - hub!<br><br>Tip: <strong>Klik en sleep</strong> de lopende band + HUB!<br><br>Tip: <strong>Klik en sleep</strong> de lopende band met je muis!" 1_3_expand: "Dit is <strong>GEEN</strong> nietsdoen-spel! Bouw meer ontginners en lopende banden om het doel sneller te behalen.<br><br>Tip: Houd <strong>SHIFT</strong> ingedrukt om meerdere ontginners te plaatsen en gebruik <strong>R</strong> om ze te draaien." - 2_1_place_cutter: "Plaats nu een <strong>Knipper</strong> om de cirkels in twee te knippen - halves!<br><br> PS: De knipper knipt altijd van <strong>boven naar - onder</strong> ongeacht zijn oriëntatie." - 2_2_place_trash: - De knipper kan vormen <strong>verstoppen en bijhouden</strong>!<br><br> Gebruik een - <strong>vuilbak</strong> om van het (!) niet - nodige afval vanaf te geraken. - 2_3_more_cutters: "Goed gedaan! Plaats nu <strong>2 extra knippers</strong> om dit traag - process te versnellen! <br><br> PS: Gebruik de <strong>0-9 - sneltoetsen</strong> om gebouwen sneller te selecteren." + 2_1_place_cutter: "Plaats nu een <strong>Knipper</strong> om de cirkels in twee + helften te knippen<br><br> PS: De knipper knipt altijd van + <strong>boven naar onder</strong> ongeacht zijn oriëntatie." + 2_2_place_trash: De knipper kan vormen <strong>verstoppen en + bijhouden</strong>!<br><br> Gebruik een + <strong>vuilnisbak</strong> om van het momenteel (!) niet nodige + afval af te geraken. + 2_3_more_cutters: "Goed gedaan! Plaats nu <strong>2 extra knippers</strong> om + dit trage process te versnellen! <br><br> PS: Gebruik de + <strong>0-9 sneltoetsen</strong> om gebouwen sneller te + selecteren." 3_1_rectangles: "Laten we nu rechthoeken ontginnen! <strong>Bouw 4 - ontginners</strong> en verbind ze met de lever.<br><br> PS: - Houd <strong>SHIFT</strong> Ingedrukt terwijl je lopende banden plaats - om ze te plannen!" - 21_1_place_quad_painter: Plaats de <strong>quad painter</strong> en krijg een paar - <strong>cirkels</strong> in <strong>witte</strong> en + ontginners</strong> en verbind ze met de schakelaar.<br><br> PS: + Houd <strong>SHIFT</strong> Ingedrukt terwijl je lopende banden + plaats om ze te plannen!" + 21_1_place_quad_painter: Plaats de <strong>quad painter</strong> en krijg een + paar <strong>cirkels</strong> in <strong>witte</strong> en <strong>rode</strong> kleur! - 21_2_switch_to_wires: Schakel naar de draden laag door te duwen op + 21_2_switch_to_wires: Schakel naar de draden-laag door te drukken op <strong>E</strong>!<br><br> <strong>verbind daarna alle inputs</strong> van de verver met kabels! - 21_3_place_button: Mooi! Plaats nu een <strong>schakelaar</strong> en verbind het - met draden! + 21_3_place_button: Mooi! Plaats nu een <strong>schakelaar</strong> en verbind + het met draden! 21_4_press_button: "Druk op de schakelaar om het een <strong>Juist signaal door - te geven</strong> en de verver te activeren.<br><br> PS: Je - moet niet alle inputs verbinden! Probeer er eens 2." + te geven</strong> en de verver te activeren.<br><br> PS: Verbind + niet alle inputs! Probeer er eens 2." colors: red: Rood green: Groen @@ -340,51 +395,96 @@ ingame: purple: Paars cyan: Cyaan white: Wit - uncolored: Geen kleur + uncolored: Kleurloos black: Zwart shapeViewer: title: Lagen empty: Leeg copyKey: Kopieer sleutel connectedMiners: - one_miner: 1 Miner - n_miners: <amount> Miners + one_miner: 1 Ontginner + n_miners: <amount> Ontginners limited_items: "Gelimiteerd tot: <max_throughput>" watermark: title: Demo versie - desc: Klik hier om het spel op Steam te bekijken! + desc: Klik hier om het spel op Steam te kopen! get_on_steam: Krijg het op Steam standaloneAdvantages: title: Koop de volledige versie! - no_thanks: Nee, bedankt! + no_thanks: Nee, dankjewel! points: levels: title: 12 Nieuwe Levels desc: Voor een totaal van 26 levels! buildings: title: 18 Nieuwe Gebouwen - desc: Automatiseer je fabrieken! - savegames: - title: ∞ Savegames - desc: Zo veel je maar wilt! + desc: Automatiseer je fabrieken nog beter en maak ze nog sneller! upgrades: title: ∞ Upgrade Levels - desc: Deze demo heeft er enkel 5! + desc: Deze demo heeft er slechts 5! markers: title: ∞ Markeringen desc: Verdwaal nooit meer in je fabriek! wires: title: Kabels - desc: Een volledig nieuwe dimensie! + desc: Een volledig nieuwe laag! darkmode: title: Dark Mode desc: Minder vervelend voor je ogen! support: title: Help mij desc: Ik maak dit spel in mijn vrije tijd! + achievements: + title: Achievements + desc: Krijg ze allemaal! + puzzleEditorSettings: + zoneTitle: Gebied + zoneWidth: Breedte + zoneHeight: Hoogte + trimZone: Bijsnijden + clearItems: Items leeg maken + share: Delen + report: Rapporteren + clearBuildings: Verwijder Gebouwen + resetPuzzle: Reset Puzzel + puzzleEditorControls: + title: Puzzel Maker + instructions: + - 1. Plaats <strong>Constante Producenten</strong> om vormen en + kleuren aan de speler te bieden. + - 2. Bouw een of meer vormen waarvan je wil dat de speler ze later + maakt en lever het aan een of meerdere + <strong>Ontvangers</strong>. + - 3. Wanneer een Ontvanger voor een bepaalde tijd lang een vorm + ontvangt, <strong>wordt het opgeslagen als een doel</strong> dat + de speler later moet produceren (Aangegeven door de <strong>groene + indicator</strong>). + - 4. Klik de <strong>vergrendelknop</strong> om een gebouw uit te + schakelen. + - 5. Zodra je op review klikt, wordt je puzzel gevalideerd en kun je + het publiceren. + - 6. Bij publicatie, <strong>worden alle gebouwen + verwijderd</strong> behalve de Muren, Constante Producenten en + Ontvangers - Dat is het deel dat de speler tenslotte voor zichzelf + moet uitzoeken :) + puzzleCompletion: + title: Puzzel Voltooid! + titleLike: "Klik op het hartje als je de puzzel leuk vond:" + titleRating: Hoe moeilijk vond je de puzzel? + titleRatingDesc: Je beoordeling helpt me om je in de toekomst betere suggesties + te geven + continueBtn: Blijf Spelen + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Auteur + shortKey: Vorm Sleutel + rating: Moeilijkheidsgraad + averageDuration: Gem. Speel Tijd + completionRate: Voltooiïngspercentage shopUpgrades: belt: - name: Banden, Verdeler & Tunnels + name: Lopende banden, Verdeler & Tunnels description: Snelheid x<currentMult> → x<newMult> miner: name: Ontginner @@ -403,10 +503,10 @@ buildings: miner: default: name: Ontginner - description: Plaats op een vorm of kleur om deze te onttrekken. + description: Plaats op een vorm of kleur om deze te ontginnen. chainable: name: Ontginner (Ketting) - description: Plaats op een vorm of kleur om deze te onttrekken. Kan achter + description: Plaats op een vorm of kleur om deze te ontginnen. Kunnen achter elkaar worden geplaatst. underground_belt: default: @@ -471,31 +571,32 @@ buildings: deliver: Lever in toUnlock: om te ontgrendelen levelShortcut: LVL - endOfDemo: End of Demo + endOfDemo: Dit is het einde van de demo, koop het spel op Steam om verder te + gaan! wire: default: name: Energiekabel description: Voor transport van energie. second: name: Kabel - description: Vervoerd signalen, zoals items, kleuren of booleans (1 of 0). + description: Vervoert signalen, zoals items, kleuren of booleans (1 of 0). Verschillende kleuren kabels kunnen niet verbonden worden. balancer: default: name: Balanceerder - description: Multifunctioneel - Verdeel alle invoeren over alle uitvoeren. + description: Multifunctioneel - Verdeelt alle invoeren over alle uitvoeren. merger: name: Samenvoeger (compact) - description: Voeg 2 lopende banden samen. + description: Voegt 2 lopende banden samen. merger-inverse: name: Samenvoeger - description: Voeg 2 lopende banden samen. + description: Voegt 2 lopende banden samen. splitter: name: Splitser (compact) - description: Splits een lopende band in tweeën. + description: Splitst een lopende band in tweeën. splitter-inverse: name: Splitser - description: Splits een lopende band in tweeën. + description: Splitst een lopende band in tweeën. storage: default: name: Opslag @@ -508,7 +609,7 @@ buildings: constant_signal: default: name: Constant Signaal - description: Zend een constant signaal, dit kan een vorm, kleur of boolean (1 / + description: Zendt een constant signaal, dit kan een vorm, kleur of boolean (1 / 0) zijn. lever: default: @@ -517,18 +618,18 @@ buildings: logic_gate: default: name: AND poort - description: Zend een 1 uit als beide invoeren hetzelfde zijn. (Kan een vorm, + description: Zendt een 1 uit als beide invoeren hetzelfde zijn. (Kan een vorm, kleur of boolean (1/0) zijn) not: name: NOT poort - description: Zend een 1 uit als de invoer een 0 is. + description: Zendt een 1 uit als de invoer een 0 is. xor: name: XOR poort - description: Zend een 1 uit als de invoeren niet hetzelfde zijn. (Kan een vorm, + description: Zendt een 1 uit als de invoeren niet hetzelfde zijn. (Kan een vorm, kleur of boolean (1/0) zijn) or: name: OR poort - description: Zend een 1 uit als de invoeren wel of niet hetzelfde zijn, maar + description: Zendt een 1 uit als de invoeren wel of niet hetzelfde zijn, maar niet uit zijn. (Kan een vorm, kleur of boolean (1/0) zijn) transistor: default: @@ -550,22 +651,22 @@ buildings: reader: default: name: Lopende band lezer - description: Meet de gemiddelde doorvoer op de band. Geeft het laatste gelezen - item door aan de kabel. + description: Meet de gemiddelde doorvoer op de lopende band. Geeft het laatste + gelezen item door aan de kabel. analyzer: default: name: Vorm Analyse - description: Analiseerd de onderste laag rechts boven en geeft de kleur en vorm + description: Analiseert de onderste laag rechtsboven en geeft de kleur en vorm door aan de kabel. comparator: default: name: Vergelijker - description: Zend 1 uit als beiden invoeren gelijk zijn, kunnen vormen, kleuren - of booleans (1/0) zijn + description: Zendt 1 uit als beiden invoeren gelijk zijn, dat kunnen vormen, + kleuren of booleans (1/0) zijn virtual_processor: default: - name: Virtuele Snijder - description: Snijdt de vorm virtueel in twee helften. + name: Virtuele Knipper + description: Knipt de vorm virtueel in twee helften. rotater: name: Virtuele Draaier description: Draait de vorm virtueel met de klok mee en tegen de klok in. @@ -579,37 +680,47 @@ buildings: painter: name: Virtuele Schilder description: Schildert de vorm virtueel vanaf de onderste invoer met de vorm aan - de rechter ingang. + de rechter invoer. item_producer: default: name: Item Producent - description: Alleen beschikbaar in sandbox-modus, geeft het gegeven signaal van - de kabel laag op de reguliere laag. + description: Alleen beschikbaar in sandbox-modus. Geeft het gegeven signaal van + de draden-laag op de normale laag. + constant_producer: + default: + name: Constante Producent + description: Voert constant een bepaalde vorm of kleur uit. + goal_acceptor: + default: + name: Ontvanger + description: Lever vormen aan de Ontvanger om ze als doel te stellen. + block: + default: + name: Blokkade + description: Hiermee kan je een tegel blokkeren. storyRewards: reward_cutter_and_trash: title: Vormen Knippen - desc: Je hebt juist de <strong>knipper</strong> ontgrendeld, die vormen in de helft - kan knippen van boven naar onder <strong>ongeacht zijn rotatie - </strong>!<br><br>Wees zeker dat je het afval weggooit, want - anders <strong>zal het vastlopen</strong> - Voor deze reden - heb ik je de <strong>vuilbak</strong> gegeven, die alles - vernietigd wat je erin laat stromen! + desc: Je hebt juist de <strong>knipper</strong> ontgrendeld, die vormen in de + helft kan knippen van boven naar onder <strong>ongeacht zijn rotatie + </strong>!<br><br>Wees zeker dat je het afval weggooit, want anders + <strong>zal het vastlopen</strong> - Daarom heb ik je de + <strong>vuilnisbak</strong> gegeven, die alles vernietigt wat je + erin laat stromen! reward_rotater: title: Roteren desc: De <strong>roteerder</strong> is ontgrendeld - Het draait vormen 90 graden met de klok mee. reward_painter: title: Verven - desc: "De <strong>verver</strong> is ontgrendeld - Onttrek wat kleur (op - dezelfde manier hoe je vormen onttrekt) en combineer het met een - vorm in de verver om ze te kleuren!<br><br>PS: Als je kleurenblind - bent, is er een <strong>kleurenblindmodus</strong> in de - instellingen!" + desc: "De <strong>verver</strong> is ontgrendeld - Ontgin wat kleur (op dezelfde + manier hoe je vormen ontgint) en combineer het met een vorm in de + verver om ze te kleuren!<br><br>PS: Als je kleurenblind bent, is er + een <strong>kleurenblind-modus</strong> in de instellingen!" reward_mixer: title: Kleuren mengen - desc: De <strong>menger</strong> is ontgrendeld - Gebruik dit gebouw om twee - kleuren te mengen met behulp van <strong>additieve - kleurmenging</strong>! + desc: De <strong>menger</strong> is ontgrendeld - Gebruik deze om twee kleuren + te mengen met behulp van <strong>additieve kleurmenging</strong>! reward_stacker: title: Stapelaar desc: Je kunt nu vormen combineren met de <strong>stapelaar</strong>! De inputs @@ -620,32 +731,32 @@ storyRewards: reward_splitter: title: Splitser/samenvoeger desc: Je hebt de <strong>splitser</strong> ontgrendeld, een variant van de - <strong>samenvoeger</strong> - Het accepteert 1 input en verdeelt het - in 2! + <strong>samenvoeger</strong>. - Het accepteert 1 input en verdeelt + het in 2! reward_tunnel: title: Tunnel desc: De <strong>tunnel</strong> is ontgrendeld - Je kunt nu voorwerpen onder gebouwen en lopende banden door laten lopen. reward_rotater_ccw: title: Roteren (andersom) - desc: Je hebt een variant van de <strong>roteerder</strong> ontgrendeld - Het - roteert voorwerpen tegen de klok in! Om het te bouwen selecteer je + desc: Je hebt een variant van de <strong>roteerder</strong> ontgrendeld - Deze + roteert voorwerpen tegen de klok in! Om hem te plaatsen selecteer je de roteerder en <strong>druk je op 'T' om tussen varianten te wisselen</strong>! reward_miner_chainable: title: Ketting-ontginner - desc: "Je hebt de <strong>Ketting-ontginner</strong> ontgrendeld! Het kan - <strong>zijn materialen ontginnen</strong> via andere ontginners zodat je - meer materialen tegelijkertijd kan ontginnen!<br><br> PS: De oude + desc: "Je hebt de <strong>Ketting-ontginner</strong> ontgrendeld! Je kunt hem + <strong>koppelen aan andere ontginners</strong> zodat je meer + materialen tegelijkertijd kunt ontginnen!<br><br> PS: De oude ontginner is vervangen in je toolbar!" reward_underground_belt_tier_2: title: Tunnel Niveau II - desc: Je hebt een nieuwe variant van de <strong>tunnel</strong> ontgrendeld. - Het heeft een - <strong>groter bereik</strong>, en je kan nu ook die tunnels mixen - over en onder elkaar! + desc: Je hebt een nieuwe variant van de <strong>tunnel</strong> ontgrendeld. - + Het heeft een <strong>groter bereik</strong>, en je kunt nu ook + tunnels over en onder elkaar mixen! reward_cutter_quad: title: Quad Knippen - desc: Je hebt een variant van de <strong>knipper</strong> ontgrendeld - Dit + desc: Je hebt een variant van de <strong>knipper</strong> ontgrendeld - Deze knipt vormen in <strong>vier stukken</strong> in plaats van twee! reward_painter_double: title: Dubbel verven @@ -654,18 +765,20 @@ storyRewards: tegelijk</strong> met één kleur in plaats van twee! reward_storage: title: Opslagbuffer - desc: Je hebt een variant van de <strong>opslag</strong> ontgrendeld - Het laat je toe om - vormen op te slagen tot een bepaalde capaciteit!<br><br> Het verkiest de linkse - output, dus je kan het altijd gebruiken als een <strong>overloop poort</strong>! + desc: Je hebt een variant van de <strong>opslag</strong> ontgrendeld - Het laat + je toe om vormen op te slagen tot een bepaalde capaciteit!<br><br> + Het verkiest de linkse output, dus je kunt het altijd gebruiken als + een <strong>overloop poort</strong>! reward_freeplay: - title: Vrij spel - desc: Je hebt het gedaan! Je hebt de <strong>free-play modus</strong> ontgrendeld! Dit betekend - dat vormen nu <strong>willekeurig</strong> gegenereerd worden!<br><br> - Omdat de hub vanaf nu een <strong>bepaald aantal vormen per seconden</strong> nodig heeft, - Raad ik echt aan een machine te maken die automatisch - de juiste vormen genereert!<br><br> De HUB geeft de vorm die je nodig hebt - op de tweede laag met draden, dus alles wat je moet doen is dat analyseren - en je fabriek dat automatisch laten maken op basis van dat. + title: Free-play modus + desc: Je hebt het gedaan! Je hebt de <strong>free-play modus</strong> + ontgrendeld! Dit betekent dat vormen nu <strong>willekeurig</strong> + gegenereerd worden!<br><br> Omdat de HUB vanaf nu een + <strong>bepaald aantal vormen per seconden</strong> nodig heeft, + Raad ik echt aan een machine te maken die automatisch de juiste + vormen genereert!<br><br> De HUB geeft de vorm die je nodig hebt + door op de draden-laag, dus je hoeft dat alleen te analyseren en je + fabriek dat automatisch te laten maken op basis daarvan. reward_blueprints: title: Blauwdrukken desc: Je kunt nu delen van je fabriek <strong>kopiëren en plakken</strong>! @@ -687,32 +800,32 @@ storyRewards: reward_balancer: title: Verdeler desc: De multifunctionele <strong>verdeler</strong> is nu ontgrendeld - Het kan - gebruikt worden om grotere <strong>te knippen en plakken</strong> vormen op meerdere - lopende banden te zetten + gebruikt worden om grotere <strong>te knippen en plakken</strong> + vormen op meerdere lopende banden te zetten reward_merger: title: Compacte samenvoeger desc: Je hebt een variant op de <strong>samenvoeger</strong> van de <strong>verdeler</strong> vrijgespeeld - Dit gebouw maakt van 2 lopende banden 1! reward_belt_reader: - title: Lopende band lezer - desc: Je hebt de <strong>lopende band lezer</strong> vrijgespeeld! Dit gebouw + title: Lopende band sensor + desc: Je hebt de <strong>lopende band sensor</strong> vrijgespeeld! Dit gebouw geeft de doorvoer op een lopende band weer.<br><br>Wacht maar tot je kabels vrijspeeld, dan wordt het pas echt interessant! reward_rotater_180: title: Draaier (180 graden) - desc: Je hebt de 180 graden <strong>draaier</strong> vrijgespeeld! - Hiermee kun - je een item op de band 180 graden draaien! + desc: Je hebt de <strong>180 graden draaier</strong> vrijgespeeld! - Hiermee kun + je een item op de lopende band 180 graden draaien! reward_display: title: Scherm - desc: "Je hebt het <strong>scherm</strong> ontgrendeld - Verbind een signaal met de - laag van draden om het te visualiseren!<br><br> PS: Heb je gezien dat de lopende band - lezer en opslag hun laatste vorm weergeven? Probeer het te tonen op - een scherm!" + desc: "Je hebt het <strong>scherm</strong> ontgrendeld - Verbind een signaal met + de laag van draden om het te visualiseren!<br><br> PS: Heb je gezien + dat de lopende band lezer en opslag hun laatste vorm weergeven? + Probeer het te tonen op een scherm!" reward_constant_signal: - title: Constante Signaal - desc: Je hebt het <strong>constante signaal</strong> vrijgespeeld op de kabel - dimensie! Dit gebouw is handig in samenwerking met <strong>item + title: Constant Signaal + desc: Je hebt het <strong>constante signaal</strong> vrijgespeeld op de draden + laag! Dit gebouw is handig in samenwerking met <strong>item filters</strong>.<br><br> Het constante signaal kan een <strong>vorm</strong>, <strong>kleur</strong> of <strong>boolean</strong> (1/0) zijn. @@ -722,32 +835,34 @@ storyRewards: je hier nog niet zo vrolijk van, maar eigenlijk zijn ze heel erg handig!<br><br> Met logische poorten kun je AND, OR en XOR operaties uitvoeren.<br><br> Als bonus krijg je ook nog een - <strong>transistor</strong> van mij! + <strong>transistor</strong> van me! reward_virtual_processing: - title: VIrtuele verwerking + title: Virtuele verwerking desc: Ik heb juist een hele hoop nieuwe gebouwen toegevoegd die je toetstaan om - <strong>het process van vormen te stimuleren</strong>!<br><br> Je kan - nu de knipper, draaier, stapelaar en meer op de dradenlaag stimuleren! - Met dit heb je nu 3 opties om verder te gaan met het spel:<br><br> - - Bouw een <strong>automatische fabriek</strong> om eender welke mogelijke - vorm te maken gebraagd door de HUB (Ik raad aan dit te proberen!).<br><br> - Bouw - iets cool met draden.<br><br> - Ga verder met normaal - spelen.<br><br> Wat je ook kiest, onthoud dat je plezier hoort te hebben! + <strong>het process van vormen te stimuleren</strong>!<br><br> Je + kunt nu de knipper, draaier, stapelaar en meer op de dradenlaag + stimuleren! Daarmee heb je nu 3 opties om verder te gaan met het + spel:<br><br> - Bouw een <strong>automatische fabriek</strong> om + elke mogelijke vorm te maken gevraagd door de HUB (Ik raad aan dit + te proberen!).<br><br> - Bouw iets cool met de draden-laag.<br><br> + - Ga verder met normaal spelen.<br><br> Wat je ook kiest, onthoud + dat je plezier blijft hebben! reward_wires_painter_and_levers: title: Wires & Quad Painter - desc: "Je hebt juist de <strong>draden laag</strong> ontgrendeld: Het is een aparte - laag boven op de huidige laag en introduceert heel veel nieuwe - manieren om te spelen!<br><br> Voor het begin heb ik voor jou de <strong>Quad - Painter</strong> ontgrendeld - Verbind de gleuf waarin je wilt verven op - de draden laag!<br><br> Om over te schakelen naar de draden laag, Duw op - <strong>E</strong>. <br><br> PS: <strong>Zet hints aan</strong> in - de instellingen om de draden tutorial te activeren!" + desc: "Je hebt juist de <strong>draden-laag</strong> ontgrendeld: Het is een + aparte laag boven op de huidige laag en introduceert heel veel + nieuwe manieren om te spelen!<br><br> Aan het begin heb ik voor jou + de <strong>Quad Painter</strong> ontgrendeld - Verbind de gleuf + waarin je wilt verven op de draden-laag!<br><br> Om over te + schakelen naar de draden-laag, Druk op <strong>E</strong>. <br><br> + PS: <strong>Zet hints aan</strong> in de instellingen om de draden + tutorial te activeren!" reward_filter: title: Item Filter desc: Je hebt de <strong>Item Filter</strong> vrijgespeeld! Items worden naar rechts of naar boven gestuurd, afhankelijk van de invoer.<br><br> Er - kan ook een boolean (1/0) worden ingevoerd om de filter in en uit - te schakelen. + kan ook een boolean (1/0) worden ingevoerd om de filter in en uit te + schakelen. reward_demo_end: title: Einde van de Demo desc: Je hebt het einde van de demoversie bereikt! @@ -755,7 +870,7 @@ settings: title: Opties categories: general: Algemeen - userInterface: Opmaak + userInterface: Gebruikersinterface advanced: Geavanceerd performance: Prestatie versionBadges: @@ -766,7 +881,7 @@ settings: labels: uiScale: title: Interface-schaal - description: Veranderd de grootte van de gebruikersinterface. De interface + description: Verandert de grootte van de gebruikersinterface. De interface schaalt nog steeds gebaseerd op de resolutie van je apparaat, maar deze optie heeft invloed op de hoeveelheid schaling. scales: @@ -774,10 +889,10 @@ settings: small: Klein regular: Middel large: Groot - huge: Jumbo + huge: Ultragroot scrollWheelSensitivity: title: Zoom-gevoeligheid - description: Veranderd hoe gevoelig het zoomen is (muiswiel of trackpad). + description: Verandert hoe gevoelig het zoomen is (muiswiel of trackpad). sensitivity: super_slow: Super langzaam slow: Langzaam @@ -805,7 +920,7 @@ settings: dark: Donker light: Licht refreshRate: - title: Simulatie doel + title: Simulatiedoel description: Wanneer je een 144 hz monitor hebt, verander de refresh rate hier zodat het spel naar behoren weer blijft geven. Dit verlaagt mogelijk de FPS als je computer te traag is. @@ -822,7 +937,7 @@ settings: gebruikt worden om de instap in het spel makkelijker te maken. movementSpeed: title: Bewegingssnelheid - description: Veranderd hoe snel het beeld beweegt wanneer je het toetsenbord + description: Verandert hoe snel het beeld beweegt wanneer je het toetsenbord gebruikt. speeds: super_slow: Super langzaam @@ -842,7 +957,7 @@ settings: zodat de tekst makkelijker te lezen is. autosaveInterval: title: Autosave Interval - description: Bepaalt hoe vaak het spel automatisch opslaat. Je kan het hier ook + description: Bepaalt hoe vaak het spel automatisch opslaat. Je kunt het hier ook volledig mee uitschakelen. intervals: one_minute: 1 Minuut @@ -860,7 +975,7 @@ settings: description: Schakelt de waarschuwing uit die wordt weergegeven wanneer je meer dan 100 dingen probeert te knippen/verwijderen. enableColorBlindHelper: - title: Kleurenblindmodus + title: Kleurenblind-modus description: Schakelt verschillende hulpmiddelen in zodat je het spel alsnog kunt spelen wanneer je kleurenblind bent. rotationByBuilding: @@ -875,8 +990,8 @@ settings: title: Muziekvolume description: Stel het volume voor muziek in. lowQualityMapResources: - title: Lage kwaliteit van resources - description: Versimpeldde resources op de wereld wanneer ingezoomd om de + title: Lage kwaliteit van uiterlijk + description: Versimpelt het uiterlijk op de wereld wanneer ingezoomd om de performance te verbeteren. Het lijkt ook opgeruimder, dus probeer het zelf een keertje uit! disableTileGrid: @@ -903,9 +1018,9 @@ settings: met de pipet boven het vakje van een resource staat. simplifiedBelts: title: Versimpelde lopende banden - description: Toont geen items op de band tenzij je over de lopende band beweegt - met je muis. De functie wordt niet aangeraden tenzij het qua - performance echt niet anders kan! + description: Toont geen items op de lopende band tenzij je over de lopende band + beweegt met je muis. De functie wordt niet aangeraden tenzij het + wat je computer betreft echt niet anders kan! enableMousePan: title: Schakel bewegen met muis in description: Schakel deze functie in om met je muis het veld te kunnen bewegen. @@ -913,18 +1028,23 @@ settings: te bewegen. zoomToCursor: title: Zoom naar de Muis - description: "Wanneer geactiveert: de zoom zal gebeuren in de richting van je - muispositie, anders in het midden van het scherm." + description: Wanneer geactiveerd, zal de zoom naar de muis bewegen. Anders in + het midden van het scherm. mapResourcesScale: title: Kaartbronnen schaal - description: Controleert de grote van de vormen op het map overzicht (wanneer je - uitzoomt). + description: Controleert de grootte van de vormen op het map overzicht (wanneer + je uitzoomt). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Sneltoetsen hint: "Tip: Maak gebruik van CTRL, SHIFT en ALT! Hiermee kun je dingen anders en gemakkelijker plaatsen." - resetKeybindings: Reset sneltoetsen + resetKeybindings: Herstel sneltoetsen categoryLabels: general: Applicatie ingame: Spel @@ -940,7 +1060,7 @@ keybindings: mapMoveRight: Beweeg naar rechts mapMoveDown: Beweeg omlaag mapMoveLeft: Beweeg naar links - centerMap: Ga naar het midden van het speelveld + centerMap: Ga naar het midden van de wereld mapZoomIn: Zoom in mapZoomOut: Zoom uit createMarker: Plaats een markering @@ -978,21 +1098,30 @@ keybindings: menuClose: Sluit Menu switchLayers: Lagen omwisselen wire: Energiekabel - balancer: Balancer + balancer: Balanceerder storage: Opslag constant_signal: Constant Signaal logic_gate: Logische poort - lever: Schakelaar (regulier) + lever: Schakelaar (standaard) filter: Filter wire_tunnel: Kabel kruising display: Scherm reader: Lopende band lezer - virtual_processor: Virtuele Snijder + virtual_processor: Virtuele Knipper transistor: Transistor analyzer: Vorm Analyse comparator: Vergelijk - item_producer: Item Producent (Sandbox) + item_producer: Voorwerp Producent (Sandbox) copyWireValue: "Kabels: Kopieer waarde onder cursor" + rotateToUp: "Rotate: Wijs omhoog" + rotateToDown: "Rotate: Wijs omlaag" + rotateToRight: "Rotate: Wijs naar rechts" + rotateToLeft: "Rotate: Wijs naar links" + constant_producer: Constante Producent + goal_acceptor: Ontvanger + block: Blokkade + massSelectClear: Lopende banden leeg maken + showShapeTooltip: Show shape output tooltip about: title: Over dit spel body: >- @@ -1002,8 +1131,7 @@ about: Als je ook bij wil dragen, ga dan naar <a href="<githublink>" target="_blank">shapez.io op github</a>.<br><br> - Dit spel was niet mogelijk geweest zonder de geweldige Discord community rondom mijn spellen - Je zou eens lid moeten worden van de - <a href="<discordlink>" target="_blank">Discord server</a> (engelstalig)!<br><br> + Dit spel was niet mogelijk geweest zonder de geweldige Discord community rondom mijn spellen - Je zou eens lid moeten worden van de <a href="<discordlink>" target="_blank">Discord server</a> (engelstalig)!<br><br> De muziek is gemaakt door <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Hij is geweldig.<br><br> @@ -1019,79 +1147,164 @@ demo: exportingBase: Exporteer volledige basis als afbeelding settingNotAvailable: Niet beschikbaar in de demo. tips: - - De hub accepteert elke vorm van invoer, niet alleen de huidige vorm! - - Zorg ervoor dat uw fabrieken modulair zijn - het loont! - - Bouw niet te dicht bij de hub, anders wordt het een enorme chaos! - - Als het stapelen niet werkt, probeer dan de ingangen om te wisselen. - - U kunt de richting van de lopende band planner wijzigen door op <b>R</b> + - De HUB accepteert elke vorm van invoer, niet alleen de huidige vorm! + - Zorg ervoor dat je fabrieken modulair zijn - het loont! + - Bouw niet te dicht bij de HUB, anders wordt het een enorme chaos! + - Als het stapelen niet werkt, probeer dan de invoeren om te wisselen. + - Je kunt de richting van de lopende band planner wijzigen door op <b>R</b> te drukken. - - Door <b> CTRL </b> ingedrukt te houden, kunnen lopende banden worden + - Door <b>CTRL</b> ingedrukt te houden, kunnen lopende banden worden gesleept zonder automatische oriëntatie. - - Verhoudingen blijven hetzelfde, zolang alle upgrades zich op hetzelfde - niveau bevinden. + - Verhoudingen van gebouw-snelheden blijven hetzelfde, zolang alle upgrades + zich op hetzelfde niveau bevinden. - Opeenvolgende uitvoering is efficiënter dan parallele uitvoering. - Je ontgrendelt later in het spel meer varianten van gebouwen! - - U kunt <b>T</b> gebruiken om tussen verschillende varianten te schakelen. + - Je kunt <b>T</b> gebruiken om tussen verschillende varianten te schakelen. - Symmetrie is de sleutel! - Je kunt verschillende tunnels weven. - Probeer compacte fabrieken te bouwen - het loont! - - De schilder heeft een gespiegelde variant die u kunt selecteren met + - De schilder heeft een gespiegelde variant die je kunt selecteren met <b>T</b> - Met de juiste bouwverhoudingen wordt de efficiëntie gemaximaliseerd. - - Op het maximale niveau vullen 5 ontginners een enkele band. + - Op het maximale niveau vullen 5 ontginners één lopende band. - Vergeet tunnels niet! - - U hoeft de items niet gelijkmatig te verdelen voor volledige efficiëntie. - - Als u <b>SHIFT</b> ingedrukt houdt tijdens het bouwen van lopende banden, + - Je hoeft de items niet gelijkmatig te verdelen voor volledige efficiëntie. + - Als je <b>SHIFT</b> ingedrukt houdt tijdens het bouwen van lopende banden, wordt de planner geactiveerd, zodat je gemakkelijk lange rijen kunt plaatsen. - - Snijders snijden altijd verticaal, ongeacht hun oriëntatie. - - Meng alle drie de kleuren om wit te krijgen. + - Knippers knippen altijd verticaal, ongeacht hun oriëntatie. - De opslagbuffer geeft prioriteit aan de eerste uitvoer. - Investeer tijd om herhaalbare ontwerpen te maken - het is het waard! - - Door <b>SHIFT</b> ingedrukt te houden, kunnen meerdere gebouwen worden - geplaatst. - - U kunt <b>ALT</b> ingedrukt houden om de richting van de geplaatste banden - om te keren. - - Efficiëntie is de sleutel! - - Vormontginningen die verder van de hub verwijderd zijn, zijn complexer. + - Invest time to build repeatable designs - it's worth it! + - Je kunt <b>ALT</b> ingedrukt houden om de richting van de geplaatste + lopende banden om te keren. + - You can hold <b>ALT</b> to invert the direction of placed belts. + - Vormontginningen die verder van de HUB verwijderd zijn, zijn complexer. - Machines hebben een beperkte snelheid, verdeel ze voor maximale efficiëntie. - - Gebruik verdelers om uw efficiëntie te maximaliseren. - - Organisatie is belangrijk. Probeer de transportbanden niet te veel over te + - Gebruik verdelers om je efficiëntie te maximaliseren. + - Organisatie is belangrijk. Probeer de lopende banden niet te veel over te steken. - Plan van tevoren, anders wordt het een enorme chaos! - - Verwijder uw oude fabrieken niet! Je hebt ze nodig om upgrades te + - Verwijder je oude fabrieken niet! Je hebt ze nodig om upgrades te ontgrendelen. - Probeer in je eentje level 20 te verslaan voordat je hulp zoekt! - - Maak de dingen niet ingewikkeld, probeer eenvoudig te blijven en u zult + - Maak de dingen niet ingewikkeld, probeer eenvoudig te blijven en je zult ver komen. - - Mogelijk moet u later in het spel fabrieken hergebruiken. Plan uw + - Mogelijk zul je later in het spel fabrieken moeten hergebruiken. Plan je fabrieken zodat ze herbruikbaar zijn. - - Soms kunt u een gewenste vorm op de kaart vinden zonder deze met + - Soms kun je een gewenste vorm op de kaart vinden zonder deze met stapelaars te maken. - - Volle windmolens / vuurwielen kunnen nooit op natuurlijke wijze spawnen. - - Kleur uw vormen voordat u ze snijdt voor maximale efficiëntie. + - Volle windmolens kunnen nooit op natuurlijke wijze spawnen. + - Kleur je vormen voordat je ze knipt voor maximale efficiëntie. - Bij modules is ruimte slechts een beleving; een zorg voor sterfelijke mannen. - Maak een aparte blueprint fabriek. Ze zijn belangrijk voor modules. - - Bekijk de kleurenmixer eens wat beter, en uw vragen worden beantwoord. - - Gebruik <b>CTRL</b> + klik om een gebied te selecteren. - - Te dicht bij de hub bouwen kan latere projecten in de weg staan. - - Het speldpictogram naast elke vorm in de upgradelijst zet deze vast op het - scherm. + - Bekijk de kleurenmixer eens wat beter, en je vragen worden beantwoord. + - Have a closer look at the color mixer, and your questions will be answered. + - Use <b>CTRL</b> + Click to select an area. + - Met het speldpictogram naast elke vorm in de upgradelijst zet deze vast op + het scherm. - Meng alle primaire kleuren door elkaar om wit te maken! - - Je hebt een oneindige kaart, verkramp je fabriek niet, breid uit! + - Je hebt een oneindige wereld, verkramp je fabriek niet, breid uit! - Probeer ook Factorio! Het is mijn favoriete spel. - - De quad-snijder snijdt met de klok mee vanaf de rechterbovenhoek! + - De quad-knipper knipt met de klok mee vanaf de rechterbovenhoek! - Je kunt je savegames downloaden in het hoofdmenu! - - Deze game heeft veel handige sneltoetsen! Bekijk zeker de + - Dit spel heeft veel handige sneltoetsen! Bekijk zeker de instellingenpagina. - - Deze game heeft veel instellingen, bekijk ze zeker! - - De markering naar uw hub heeft een klein kompas om de richting aan te + - Dit spel heeft veel instellingen, bekijk ze zeker! + - De markering naar je HUB heeft een klein kompas om de richting aan te geven! - - Om de banden leeg te maken, knipt u het gebied af en plakt u het op - dezelfde locatie. - - Druk op F4 om uw FPS en Tick Rate weer te geven. + - Om de lopende banden leeg te maken, kun je een gebied kopiëren en plakken + op dezelfde locatie. + - Druk op F4 om je FPS en Tick Rate weer te geven. - Druk twee keer op F4 om de tegel van je muis en camera weer te geven. - - U kunt aan de linkerkant op een vastgezette vorm klikken om deze los te + - Je kan aan de linkerkant op een vastgezette vorm klikken om deze los te maken. + - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Spelen + edit: Bewerken + title: Puzzel Modus + createPuzzle: Puzzel Maken + loadPuzzle: Laden + reviewPuzzle: Beoordeel en publiceer + validatingPuzzle: Puzzel Valideren + submittingPuzzle: Puzzel Indienen + noPuzzles: Er zijn momenteel geen puzzels in deze sectie. + dlcHint: Heb je de DLC al gekocht? Zorg ervoor dat het is geactiveerd door met + de rechtermuisknop op shapez.io in uw bibliotheek te klikken, + Eigenschappen > DLC's te selecteren. + categories: + levels: Levels + new: Nieuw + top-rated: Best Beoordeeld + mine: Mijn Puzzels + easy: Makkelijk + hard: Moeilijk + completed: Voltooid + medium: Medium + official: Officieel + trending: Trending vandaag + trending-weekly: Trending wekelijks + categories: Categorieën + difficulties: Op Moeilijkheidsgraad + account: Mijn Puzzels + search: Zoeken + validation: + title: Ongeldige Puzzel + noProducers: Plaats alstublieft een Constante Producent! + noGoalAcceptors: Plaats alstublieft een Ontvanger! + goalAcceptorNoItem: Een of meer Ontvangers hebben nog geen item toegewezen. Geef + ze een vorm om een doel te stellen. + goalAcceptorRateNotMet: Een of meerdere Ontvangers krijgen niet genoeg items. + Zorg ervoor dat de indicatoren groen zijn voor alle acceptanten. + buildingOutOfBounds: Een of meer gebouwen bevinden zich buiten het bebouwbare + gebied. Vergroot het gebied of verwijder ze. + autoComplete: Je puzzel voltooit zichzelf automatisch! Zorg ervoor dat je + Constante Producenten niet rechtstreeks aan je Ontvangers leveren. + difficulties: + easy: Makkelijk + medium: Medium + hard: Moeilijk + unknown: Unrated + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Je voert je handelingen te vaak uit. Wacht alstublieft even. + invalid-api-key: Kan niet communiceren met de servers, probeer alstublieft het + spel te updaten/herstarten (ongeldige API-sleutel). + unauthorized: Kan niet communiceren met de servers, probeer alstublieft het spel + te updaten/herstarten (Onbevoegd). + bad-token: Kan niet communiceren met de servers, probeer alstublieft het spel te + updaten/herstarten (Ongeldige Token). + bad-id: Ongeldige puzzel-ID. + not-found: De opgegeven puzzel is niet gevonden. + bad-category: De opgegeven categorie is niet gevonden. + bad-short-key: De opgegeven vorm sleutel is ongeldig. + profane-title: Je puzzel titel bevat groffe woorden. + bad-title-too-many-spaces: Je puzzel titel is te kort. + bad-shape-key-in-emitter: Een Ontvanger heeft een ongeldig item. + bad-shape-key-in-goal: Een Constante Producent heeft een ongeldig item. + no-emitters: Je puzzel heeft geen Constante Producenten. + no-goals: Je puzzel heeft geen Ontvangers. + short-key-already-taken: Deze vorm sleutel is al in gebruik, gebruik een andere. + can-not-report-your-own-puzzle: Je kunt je eigen puzzel niet melden. + bad-payload: Het verzoek bevat ongeldige gegevens. + bad-building-placement: Je puzzel bevat ongeldig geplaatste gebouwen. + timeout: Het verzoek is verlopen. + too-many-likes-already: De puzzel heeft al te veel likes. Als je het nog steeds + wilt verwijderen, neem dan contact op support@shapez.io! + no-permission: Je bent niet gemachtigd om deze actie uit te voeren. diff --git a/translations/base-no.yaml b/translations/base-no.yaml index 8ab3a2a7..0f79e24b 100644 --- a/translations/base-no.yaml +++ b/translations/base-no.yaml @@ -14,39 +14,14 @@ steamPage: Mens du kun produserer former i starten må du fargelegge de senere - for å gjøre dette må du hente ut og blande farger! Ved å kjøpe spillet på Steam får du tilgang til fullversjonen, men du kan også spille en demo på shapez.io først og bestemme deg senere! - title_advantages: Fordeler med fullversjonen - advantages: - - <b>12 Nye nivåer</b> til totalt 26 nivåer - - <b>18 Nye byggninger</b> For en helautomatisert fabrikk! - - <b>20 Oppgraderingsnivåer</b> for mange timer med moro! - - <b>Kabeloppdateringen</b> For en helt ny dimensjon! - - <b>Mørkt tema</b>! - - Uendelige lagringsplasser - - Uendelige markører - - Støtt meg! ❤️ - title_future: Planlagt innhold - planned: - - Blåkopibibliotek (Eksklusivt til fullversjonen) - - Steam-medaljer - - Puslemodus - - Minikart - - Mods - - Sandkassemodus - - ... og masse mer! - title_open_source: Dette spillet har åpen kildekode! - title_links: Lenker - links: - discord: Offisiell Discord - roadmap: Veikart - subreddit: Subreddit - source_code: Kildekode (GitHub) - translate: Hjelp til med å oversette - text_open_source: >- - Alle kan bidra, jeg er aktivt involvert i sammfunnet og prøver å se - gjennom alle forslagene og tar tilbakemeldinger i betraktning der det - er mulig. - - Sjekk også mitt Trello-brett for hele veikartet! + what_others_say: Hva sier andre om shapez.io + nothernlion_comment: Dette er et fantastisk spill - Jeg storkoser meg når jeg + spiller det, og tiden bare flyr avgårde. + notch_comment: Oops. Jeg burde egentlig sove, men jeg tror jeg nettop fant ut + hvordan man lager en PC i shapez.io + steam_review_comment: Dette spillet har sjålet livet mitt, og jeg vil ikke ha + det tilbake. Veldig avslappende fabrikkspill som ikke stopper meg fra å + lage båndene mere effektive. global: loading: Laster error: Feil @@ -78,6 +53,7 @@ global: escape: ESC shift: SHIFT space: MELLOMROM + loggingIn: Logger inn demoBanners: title: Demo Versjon intro: Skaff deg frittstående versjon for å åpne alle funksjoner! @@ -97,7 +73,13 @@ mainMenu: newGame: Nytt Spill madeBy: Laget av <author-link> subreddit: Reddit - savegameUnnamed: Unnamed + savegameUnnamed: Ingen Navn + puzzleMode: Puzzle Modus + back: Tilbake + puzzleDlcText: Liker du å bygge kompate og optimaliserte fabrikker? Skaff deg + Puzzle tilleggspakken nå på Steam for mere moro! + puzzleDlcWishlist: Legg i ønskeliste nå! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -111,6 +93,9 @@ dialogs: viewUpdate: Vis Oppdatering showUpgrades: Vis Oppgraderinger showKeybindings: Se Hurtigtaster + retry: Prøv på nytt + continue: Fortsett + playOffline: Spill Offline importSavegameError: title: Importeringsfeil text: "Kunne ikke importere lagringsfilen:" @@ -122,9 +107,8 @@ dialogs: text: "Kunne ikke laste inn lagringsfilen:" confirmSavegameDelete: title: Bekreft sletting - text: Are you sure you want to delete the following game?<br><br> - '<savegameName>' at level <savegameLevel><br><br> This can not be - undone! + text: Er du sikker på at du vil slette følgende spill?<br><br> '<savegameName>' + på nivå <savegameLevel><br><br> Handlinge kan ikke reversjeres! savegameDeletionError: title: Kunne ikke slette text: "Kunne ikke slette lagringsfilen:" @@ -180,8 +164,8 @@ dialogs: samlebånd.<br>" createMarker: title: Ny Markør - desc: Give it a meaningful name, you can also include a <strong>short - key</strong> of a shape (Which you can generate <link>here</link>) + desc: Gi den et meningsfult navn, du kan også inkludere <strong>korte + koder</strong> av en form (Som du kan generere <link>her</link>) titleEdit: Rediger markør markerDemoLimit: desc: Du kan kun ha to markører i demoverjsonen. Skaff deg den frittstående @@ -196,21 +180,86 @@ dialogs: desc: Du har ikke råd til å lime inn dette området! er du sikker på at du vil klippe det ut? editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you - can generate <link>here</link>) + title: Velg Signal + descItems: "Velg en forhåndsvalgt gjenstand:" + descShortKey: ... eller skriv inn <strong>korte koden</strong> av en form (Som + du kan generere <link>her</link>) renameSavegame: - title: Rename Savegame - desc: You can rename your savegame here. + title: Bytt Spillnavn + desc: Du kan bytte navn på ditt lagrede spill her. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Introduksjon tilgjengelig + desc: Det er en introduksjonsvideo tilgjengelig for dette nivået! Ønsker du å ta + en titt? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Introduksjon tilgjengelig + desc: Det er en introduksjonsvideo tilgjengelig, men den er kun tilgjengelig på + Engelsk. Ønsker du å ta en titt? + editConstantProducer: + title: Velg Gjenstand + puzzleLoadFailed: + title: Puslespill feilet å laste inn + desc: "Beklageligvis, kunne ikke puslespillet lastes inn:" + submitPuzzle: + title: Send inn Puslespill + descName: "Gi ditt puslespill et navn:" + descIcon: "Vennligst skriv en kort, unik gjenkjenner, som vil bli vist som et + ikon av ditt brett (Du kan lage dem <link>her</link>, eller velge en + av de tilfeldigve genererte nedenfor):" + placeholderName: Puslespilltittel + puzzleResizeBadBuildings: + title: Omgjøring av størrelse ikke mulig + desc: Du kan ikke gjøre sonen noe mindre, for da vil noen bygninger være utenfor + sonen. + puzzleLoadError: + title: Feil i puslespillet + desc: "Puslespillet kunne ikke laste inn:" + offlineMode: + title: Offline Modus + desc: Fikk ikke kontakt med serveren, så spillet må kjøres i offline modus. Sørg + for at du har en fungerende internett tilkobling. + puzzleDownloadError: + title: Nedlastningsfeil + desc: "Kunne ikke laste ned puslespillet:" + puzzleSubmitError: + title: Innsendingsfeil + desc: "Kunne ikke sende inn puslespillet:" + puzzleSubmitOk: + title: Puslespill sendt inn + desc: Gratulerer! Ditt puslespill har blitt publisert og kan nå bli spilt av + andre. Du kan finne den under "Mine puslespill" seksjonen. + puzzleCreateOffline: + title: Offline Modus + desc: Siden du er frakoblet, så kan du ikke lagre og/eller publisere dine + puslespill. Ønsker du å fortsette? + puzzlePlayRegularRecommendation: + title: Anbefalinger + desc: Jeg anbefaler på det <strong>sterkeste</strong> å spille hovedspillet til + nivå 12 før du prøver Puzzle tillegspakken, ellers kan du oppleve + mekanikk som du ikke har prøvd før. Ønsker du å fortsette? + puzzleShare: + title: Kort kode kopiert + desc: Korte koden av puslespillet (<key>) har blitt kopiert til din + utklippstavle! Den kan skrives inn i puslespillmenyen for å få + tilgang til puslespillet. + puzzleReport: + title: Rapporter Puslespill + options: + profane: Vulgært + unsolvable: Ikke løsbart + trolling: Trolling + puzzleReportComplete: + title: Takk for din tilbakemelding! + desc: Puslespillet har blitt markert. + puzzleReportError: + title: Kunne ikke rapportere + desc: "Din rapport kunne ikke prosesseres:" + puzzleLoadShortKey: + title: Skriv inn kort kode + desc: Skriv inn korte koden til puslespillet for å laste den inn. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Beveg @@ -232,9 +281,10 @@ ingame: clearSelection: Fjern Valgte pipette: Pipette switchLayers: Bytt lag + clearBelts: Tøm belter buildingPlacement: cycleBuildingVariants: Trykk <key> for å veksle mellom variantene. - hotkeyLabel: "Hotkey: <key>" + hotkeyLabel: "Hurtigtast: <key>" infoTexts: speed: Hastighet range: Lengde @@ -251,7 +301,7 @@ ingame: notifications: newUpgrade: En ny oppgradering er tilgjengelig! gameSaved: Spillet ditt er lagret. - freeplayLevelComplete: Level <level> has been completed! + freeplayLevelComplete: Nivå <level> har blitt løst! shop: title: Oppgraderinger buttonUnlock: Oppgrader @@ -274,7 +324,7 @@ ingame: shapesDisplayUnits: second: <shapes> / s minute: <shapes> / m - hour: <shapes> / h + hour: <shapes> / t settingsMenu: playtime: Spilletid buildingsPlaced: Bygninger @@ -305,30 +355,30 @@ ingame: og belter for å nå målet raskere.<br><br>Tips: Hold <strong>SHIFT</strong> for å plassere flere utdragere, og bruk <strong>R</strong> for å rotere dem." - 2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two - halves!<br><br> PS: The cutter always cuts from <strong>top to - bottom</strong> regardless of its orientation." - 2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a - <strong>trash</strong> to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed - up this slow process!<br><br> PS: Use the <strong>0-9 - hotkeys</strong> to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4 - extractors</strong> and connect them to the hub.<br><br> PS: - Hold <strong>SHIFT</strong> while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some - <strong>circles</strong>, <strong>white</strong> and - <strong>red</strong> color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - <strong>E</strong>!<br><br> Then <strong>connect all four - inputs</strong> of the painter with cables! - 21_3_place_button: Awesome! Now place a <strong>Switch</strong> and connect it - with wires! - 21_4_press_button: "Press the switch to make it <strong>emit a truthy - signal</strong> and thus activate the painter.<br><br> PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "Nå plasser en <strong>kutter</strong> for å kutte sirklene i + to halve biter!<br><br> NB: Kutteren kutter alltid fra + <strong>toppen til bunnen</strong> uansett orienteringen." + 2_2_place_trash: Kutteren kan <strong>tette og lage kø</strong>!<br><br> Bruk en + <strong>søppelbøtte</strong> for å bli kvitt nåværende (!) ikke + nødvendige rester. + 2_3_more_cutters: "Godt jobba! Nå plasser <strong>2 flere kuttere</strong> for å + øke hastigheten på denne prosessen!<br><br> NB: Bruk <strong>0-9 + hurtigtastene</strong> for å velge bygning raskere!" + 3_1_rectangles: "Nå la oss fremvinne noen rektangler! <strong>Bygg 4 + utvinnere</strong> og koble de til hovedbygningen.<br><br> NB: + Hold inne <strong>SHIFT</strong> mens du drar beltet for å + aktivere belteplanleggeren!" + 21_1_place_quad_painter: Plasser <strong>4veis maleren</strong> og få noen + <strong>sirkler</strong>, <strong>hvite</strong> og + <strong>rød</strong> farget! + 21_2_switch_to_wires: Bytt til kabelnivået ved å trykke + <strong>E</strong>!<br><br> Deretter <strong>koble alle fire + inngangene</strong> til 4veis malerene med kabler! + 21_3_place_button: Flott! Nå plasser en <strong>bryter</strong> og koble den med + kabler! + 21_4_press_button: "Trykk på bryteren for å <strong>utgi et gyldig + signal</strong> som deretter aktiverer malerene.<br><br> NB: Du + må ikke koble til alle inngangene! Prøv bare med to." colors: red: Rød green: Grønn @@ -342,43 +392,85 @@ ingame: shapeViewer: title: Lag empty: Tom - copyKey: Copy Key + copyKey: Kopier Key connectedMiners: - one_miner: 1 Miner - n_miners: <amount> Miners - limited_items: Limited to <max_throughput> + one_miner: 1 Utgraver + n_miners: <amount> Utgravere + limited_items: Begrenset til <max_throughput> watermark: - title: Demo version - desc: Click here to see the Steam version advantages! - get_on_steam: Get on steam + title: Demo versjon + desc: Trykk her for å se fordelene med Steam verjsonen! + get_on_steam: Få på Steam standaloneAdvantages: - title: Get the full version! - no_thanks: No, thanks! + title: Få fullversjonen! + no_thanks: Nei takk! points: levels: - title: 12 New Levels - desc: For a total of 26 levels! + title: 12 Nye Nivåer + desc: Tilsvarer totalt 26 nivåer! buildings: - title: 18 New Buildings - desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! + title: 18 Nye Bygninger + desc: Fullautomatiser din fabrikk! upgrades: - title: ∞ Upgrade Tiers - desc: This demo version has only 5! + title: ∞ Oppgraderingsnivåer + desc: Demoversjonen har kun 5! markers: - title: ∞ Markers - desc: Never get lost in your factory! + title: ∞ Markører + desc: Aldri gå deg vill i din fabrikk! wires: - title: Wires - desc: An entirely new dimension! + title: Kabler + desc: En helt ny dimensjon! darkmode: - title: Dark Mode - desc: Stop hurting your eyes! + title: Mørkmodus + desc: Slutt å skade øynene dine! support: - title: Support me - desc: I develop it in my spare time! + title: Støtt meg + desc: Jeg utvikler dette på min fritid! + achievements: + title: Prestasjoner + desc: Skaff dem alle! + puzzleEditorSettings: + zoneTitle: Sone + zoneWidth: Bredde + zoneHeight: Høyde + trimZone: Kamtsone + clearItems: Fjern gjenstander + share: Del + report: Rapporter + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puslespill lager + instructions: + - 1. Plasser <strong>konstante produseringer</strong> for å gi + former og farger til spilleren + - 2. Bygg en eller flere former du vil at spilleren skal bygge + senere og lever det til en eller fler <strong>Mål mottak</strong> + - 3. Når et målmottak mottar en form over en viss periode, vil den + <strong>lagres som et mål</strong> som spilleren må produsere + senere (Indikert av <strong>grønne skiltet</strong>). + - 4. Trykk <strong>låse knappen</strong> på en bygning for å + deaktivere den. + - 5. Så fort du trykker gjennomgå, vil ditt puslespill bli validert + og du kan publisere det. + - 6. Når det er publisert, <strong>vil alle bygningene bli + fjernet</strong> utenom produseringene og mål mottakene - Det er + delen som spilleren skal finne ut av dem selv, tross alt :) + puzzleCompletion: + title: Puslespill Fullført! + titleLike: "Trykk på hjertet hvis du likte puslespillet:" + titleRating: Hvor vanskelig syntes du det var? + titleRatingDesc: Ditt omdømme vil hjelpe hjelpe meg med å gi deg bedre forslag i + fremtiden + continueBtn: Fortsett å spill + menuBtn: Meny + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Laget av + shortKey: Kort Kode + rating: Vanskelighetsscore + averageDuration: Gj. Varighet + completionRate: Fullføringsratio shopUpgrades: belt: name: Belter, Distributører & Tunneler @@ -397,7 +489,7 @@ buildings: deliver: Lever toUnlock: for å låse opp levelShortcut: nivå - endOfDemo: End of Demo + endOfDemo: Slutt på demoen belt: default: name: Samlebånd @@ -438,8 +530,8 @@ buildings: name: Roter (Mot klokken) description: Roter former mot klokken, 90 grader. rotate180: - name: Rotate (180) - description: Rotates shapes by 180 degrees. + name: Roter (180) + description: Roter former med 180 grader. stacker: default: name: Stabler @@ -460,9 +552,8 @@ buildings: inngang. quad: name: Maler (Firedobbel) - description: Allows you to color each quadrant of the shape individually. Only - slots with a <strong>truthy signal</strong> on the wires layer - will be painted! + description: Lar deg male hver del av en form individuelt. Kun innganger med et + <strong>ekte signal</strong> på kabel nivået vil bli malt! mirrored: name: Maler description: Maler hele formen på venstre inngang med fargen fra øverste @@ -477,128 +568,141 @@ buildings: name: Energikabel description: Lar deg transportere energi. second: - name: Wire - description: Transfers signals, which can be items, colors or booleans (1 / 0). - Different colored wires do not connect. + name: Kabel + description: Overfører signaler, som kan være gjenstander, farger eller + booleanere (1 / 0). Forskjellige fargede kabler kobler seg ikke + sammen. balancer: default: - name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + name: Balanserer + description: Multifunksjon - Distribuerer inngangene på utgangene jevnt. merger: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Balanserer (kompakt) + description: Slår sammen to belter til ett. merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Balanserer (kompakt) + description: Slår sammen to belter til ett. splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Splitter (kompakt) + description: Deler ett belte i to. splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Splitter (kompakt) + description: Deler ett belte i to. storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: Lager + description: Lagre overflødige gjenstander, opp til en viss antall. Prioriterer + venstre utgang og kan bli brukt som en overløpsventil. wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: Kabelkryss + description: Tillater å krysse to kabler uten å koble de sammen. constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: Konstant Signal + description: Utgir et konstant signal, som enten kan være en form, farge eller + booleaner (1 / 0). lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: Bryter + description: Kan skru av/på et booleaner signal (1 / 0) på kabel nivået, som + igjen kan brukes for å kontrolere for eksempel filtrering. logic_gate: default: name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + description: Utgir en booleaner "1" hvis begge innganger er sanne. (Sanne betyr + form, farge eller booleaner "1") not: name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + description: Utgir en booleaner "1" hvis begge innganger ikke er sanne. (Sanne + betyr form, farge eller booleaner "1") xor: name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + description: Utgir en booleaner "1" hvis en av inngangene er sanne, men ikke + begge. (Sanne betyr form, farge eller booleaner "1") or: name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + description: Utgir en booleaner "1" hvis en av inngangene er sanne. (Sanne betyr + form, farge eller booleaner "1") transistor: default: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: Transistorer + description: Vidresender nedre inngang om sideinngangen er sann (en form, farge + eller "1"). mirrored: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: Transistorer + description: Vidresender nedre inngang om sideinngangen er sann (en form, farge + eller "1"). filter: default: name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + description: Koble til et signal for å rute alle tilsvarende gjenstander til + toppen og gjenværende til høyre. Kan bli kontroller med + booleaner signaler også. display: default: - name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + name: Skjerm + description: Koble til et signal for å vise det på skjermen - Det kan være en + form, farge eller booleaner. reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: Belteleser + description: Tillater å telle gjennomsnittelig flyt på beltet. Utgir det siste + leste gjenstanden på kabel nivået (når tilgjengelig). analyzer: default: - name: Shape Analyzer - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + name: Form Analyserer + description: Analyserer øverst i høyre av det laveste nivået på en form og + returnerer dens form og farge. comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: Sammenlign + description: Returnerer booleaner "1" hvis begge signalene er like. Kan + sammenligne former, gjenstander og booleaner. virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: Virituell Kutter + description: Kutt former virituelt i to deler. rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: Virituell Roterer + description: Virituelt roterer formen, både med klokken og mot klokken. unstacker: - name: Virtual Unstacker - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + name: Virituell Avstabler + description: Virituelt separerer øverste nivået på høyre utgang og gjenværende + nede på venstre. stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: Virituell Stabler + description: Virituelt stabler formen på høyre med den på venstre. painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: Virituell Fargelegger + description: Virituelt fargelegger formen fra nederste ingang med formen på + høyre inngang. item_producer: default: - name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + name: Gjenstands lager + description: Tilgjengelig kun i in sandbox modus, returnerer det gitte signalet + fra kabel nivået på det vanlige nivået. + constant_producer: + default: + name: Konstante Produseringer + description: Produserer konstant en spesifik form eller farge. + goal_acceptor: + default: + name: Mål Mottaker + description: Lever former til mål mottakeren for å sette dem som et mål. + block: + default: + name: Blokker + description: Lar deg blokkere en rute. storyRewards: reward_cutter_and_trash: title: Kutt Objekter - desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half - from top to bottom <strong>regardless of its - orientation</strong>!<br><br>Be sure to get rid of the waste, or - otherwise <strong>it will clog and stall</strong> - For this purpose - I have given you the <strong>trash</strong>, which destroys - everything you put into it! + desc: Du åpnet nettop <strong>kutteren</strong>, som kutter former i to fra + toppen til bunnen <strong>uavhengig av dens + orientasjon</strong>!<br><br>Sørg for å bli kvitt søppel, ellers + <strong>vil det samle seg og tette</strong> - For dette formålet så + har jeg gitt deg en <strong>søppelkasse</strong>, som ødelegger alt + du kaster i den! reward_rotater: title: Rotering desc: <strong>Rotereren</strong> har blitt tilgjengelig! Den roterer objekter @@ -621,10 +725,9 @@ storyRewards: bil <strong>til en</strong>. Hvis ikke, blir høyre inngang <strong>plassert over</strong> venstre inngang! reward_splitter: - title: Fordeler/Sammenslåer - desc: You have unlocked a <strong>splitter</strong> variant of the - <strong>balancer</strong> - It accepts one input and splits them - into two! + title: Fordeler + desc: Du har åpnet opp <strong>fordler</strong> varianten av + <strong>balansereren</strong> - Den godtar en inn og deler dem i to! reward_tunnel: title: Tunnel desc: <strong>Tunnelen</strong> har blitt tilgjengelig - Du kan nå transportere @@ -636,10 +739,10 @@ storyRewards: <strong>trykk 'T' for å veksle mellom variantene</strong>! reward_miner_chainable: title: Kjedeutdrager - desc: "You have unlocked the <strong>chained extractor</strong>! It can - <strong>forward its resources</strong> to other extractors so you - can more efficiently extract resources!<br><br> PS: The old - extractor has been replaced in your toolbar now!" + desc: "Du har åpnet <strong>kjedeutdrageren</strong>! Den kan <strong>vidresende + sine ressursser</strong> til andre utdragere så du kan mer effektivt + hente ut ressursser!<br><br> NB: Gamle utdrageren har blitt byttet + ut på din hurtigbar nå!" reward_underground_belt_tier_2: title: Tunnel Nivå II desc: Du har åpnet en ny variant av <strong>tunnelen</strong> - Den har @@ -656,18 +759,19 @@ storyRewards: konsumerer bare en farge istedenfor to! reward_storage: title: Lagringsbuffer - desc: You have unlocked the <strong>storage</strong> building - It allows you to - store items up to a given capacity!<br><br> It priorities the left - output, so you can also use it as an <strong>overflow gate</strong>! + desc: Du har åpnet <strong>lagringsbuffer</strong> bygningen - Den lar deg lagre + gjenstander opp til et gitt antall!<br><br> Den prioriterer venstre + utgangen, så du kan også bruke det som en + <strong>overløpsventil</strong>! reward_freeplay: title: Frispill - desc: You did it! You unlocked the <strong>free-play mode</strong>! This means - that shapes are now <strong>randomly</strong> generated!<br><br> - Since the hub will require a <strong>throughput</strong> from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!<br><br> The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + desc: Du klarte det! Du låste opp <strong>frispill modus</strong>! Dette betyr + at former er nå <strong>tilfeldige</strong> generert!<br><br> Siden + hovedbygningen nå krever en <strong>gjennomgang</strong> fra nå av, + anbefaler jeg å bygge en maskin som automatisk leverer ønskede + formen!<br><br> Hovedbygningen utgir den forespurte formen på kabel + nivået, så alt du må gjøre er å analysere det og automatisk + konfigerer din fabrikk basert på det. reward_blueprints: title: Blåkopier desc: Du kan nå <strong>kopiere og lime inn</strong> deler av fabrikken din! @@ -686,78 +790,79 @@ storyRewards: desc: Gratulerer!! Forresten, mer innhold er planlagt for den frittstående versjonen! reward_balancer: - title: Balancer - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + title: Balanserer + desc: Den multifunksjonible <strong>balansereren</strong> har blitt tilgjengelig + - Den kan bli brukt for å bygge større fabrikker ved å <strong>dele + opp og slå sammen gjenstander</strong> på flere belter! reward_merger: - title: Compact Merger - desc: You have unlocked a <strong>merger</strong> variant of the - <strong>balancer</strong> - It accepts two inputs and merges them - into one belt! + title: Kompakt Sammenslåer + desc: Du har åpnet opp en <strong>sammenslåer</strong> variant av + <strong>balansereren</strong> - Den godtar to innganger og slår de + sammen til ett belte! reward_belt_reader: - title: Belt reader - desc: You have now unlocked the <strong>belt reader</strong>! It allows you to - measure the throughput of a belt.<br><br>And wait until you unlock - wires - then it gets really useful! + title: Belte Leser + desc: Du har låst opp <strong>belte leseren</strong>! Den lar deg måle trafikken + på et belte.<br><br>Og vent til du låser opp kabler - da blir den + veldig nyttig! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: Roterer (180 grader) + desc: Du åpnet opp 180 graders <strong>rotereren</strong>! - Den lar deg rotere + en form 180 grader (Overraskelse! :D) reward_display: - title: Display - desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the - wires layer to visualize it!<br><br> PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + title: Skjerm + desc: "Du har åpnet opp <strong>Skjermen</strong> - Koble til et signal på kabel + nivået for å visualisere det!<br><br> NB: La du merke til belte + leseren og lagringsbygningen utgir siste gjenstanden de så? Prøv å + vis det på en skjerm!" reward_constant_signal: - title: Constant Signal - desc: You unlocked the <strong>constant signal</strong> building on the wires - layer! This is useful to connect it to <strong>item filters</strong> - for example.<br><br> The constant signal can emit a - <strong>shape</strong>, <strong>color</strong> or - <strong>boolean</strong> (1 / 0). + title: Konstant Signal + desc: Du åpnet opp <strong>konstant signal</strong> bygningen på kabel nivået! + Denne er brukbar for å koble til <strong>gjenstandsfilter</strong> + for eksempel.<br><br> Det konstante signalet kan utgi en + <strong>form</strong>, <strong>farge</strong> eller + <strong>booleaner</strong> (1 / 0). reward_logic_gates: title: Logic Gates - desc: You unlocked <strong>logic gates</strong>! You don't have to be excited - about this, but it's actually super cool!<br><br> With those gates - you can now compute AND, OR, XOR and NOT operations.<br><br> As a - bonus on top I also just gave you a <strong>transistor</strong>! + desc: Du åpnet opp <strong>logic gates</strong>! Du trenger ikke være så + overlykkelig for dette, men det er faktisk super kult!<br><br> Med + disse kan du nå utregne AND, OR, XOR og NOT operasjoner.<br><br> Som + en bonus på toppen, ga jeg deg også <strong>transistorer</strong>! reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - <strong>simulate the processing of shapes</strong>!<br><br> You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:<br><br> - - Build an <strong>automated machine</strong> to create any possible - shape requested by the HUB (I recommend to try it!).<br><br> - Build - something cool with wires.<br><br> - Continue to play - regulary.<br><br> Whatever you choose, remember to have fun! + title: Virtuell Prosessering + desc: Du fikk nettop en hel del av bygninger som lar deg <strong>simulere + prosessen av former</strong>!<br><br> Du kan nå simulere kutting, + rotering, stabling og mer på kabel nivået! Med dette har du nå tre + muligheter for å fortsette spillet:<br><br> - Bygg en + <strong>automatisert maskin</strong> som lager alle mulige former + forespurt av hovedbygningen (Jeg anbefaler deg å prøve + dette!).<br><br> - Bygg noe kult med kabler.<br><br> - Fortsett å + spill vanlig.<br><br> Hva nå enn du velger, husk å ha det gøy! reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!<br><br> For the beginning I unlocked you the <strong>Quad - Painter</strong> - Connect the slots you would like to paint with on - the wires layer!<br><br> To switch to the wires layer, press - <strong>E</strong>. <br><br> PS: <strong>Enable hints</strong> in - the settings to activate the wires tutorial!" + title: Kabler & 4veis Fargelegger + desc: "Du åpnet nettop <strong>kabel nivået</strong>: Det er et separat nivå på + toppen av det vanlige som introduserer mye nye mekanismer!<br><br> I + begynnelsen åpnet du <strong>4 veis fargeleggeren</strong> - Koble + til inngangene du vil male med på kabel nivået!<br><br> For å bytte + til kabel nivået, trykk <strong>E</strong>. <br><br> NB: + <strong>Skru på tips</strong> på instillinger for å aktivere kabel + nivå introduksjonen!" reward_filter: - title: Item Filter - desc: You unlocked the <strong>Item Filter</strong>! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.<br><br> You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + title: Gjenstandsfilter + desc: Du åpnet opp <strong>Gjenstandsfilter</strong>! Den vil rute gjenstander + enten til toppen eller høyre utgang avhengig av om de matcher + signalet fra kabel nivået eller ikke.<br><br> Du kan også legge inn + et booleaner signal (1 / 0) for å aktivere eller deaktivere den i + sin helhet. reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: Slutt på Demo + desc: Du har nådd slutten på demoversjonen! settings: title: Instillinger categories: general: Generelt userInterface: Brukergrensesnitt advanced: Avansert - performance: Performance + performance: Ytelse versionBadges: dev: Utvikling staging: Iscenesettelse @@ -868,56 +973,62 @@ settings: kan være mer komfortabelt hvis du ofte veksler mellom plassering av forskjellige bygninger. soundVolume: - title: Sound Volume - description: Set the volume for sound effects + title: Lyd Volum + description: Sett volumet på lydeffekter musicVolume: - title: Music Volume - description: Set the volume for music + title: Musikk Volum + description: Sett volumet på musikk lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: Lavkvalitets Kart Ressursser + description: Simplifiserer fremvisningen av ressursser på kartet når zoomet inn + for å forbedre ytelsen. Det ser også renere ut, så sørg for å + sjekke det ut! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: Deaktiver Rutenett + description: Deaktiver rutenettet kan hjelpe på ytelse. Dette vil også få + spillet til å se renere ut! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: Fjern musepil ved høyreklikk + description: Skrudd på standard, fjerner hva enn du har ved musen når du + høyreklikker mens du har en bygning valgt for plassering. Hvis + deaktivert, så kan du slette bytninger ved å høyreklikke mens du + plasserer en bytgning. lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: Lavkvalitets teksturer (Stygt) + description: Bruker lavkvalitets teksturer for å forbedre ytelsen. Dette vil få + spillet til å se veldig sygt ut! displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: Vis Sektor Rammer + description: Spillet er delt inn i sektorer på 16x16 ruter, hvis denne + instillingen er skrudd på, vil kantene i hver sektor vises. pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: Velg utdrager på ressurss felt + description: Aktivert standard, velger utdrageren hvis du bruker pipette når du + holder over et ressurss felt. simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: Simplifiserte Belter (Sygt) + description: Fremviser ikke ting på belter forutenom når du holder musen over + beltet for å forbedre ytelsen. Jeg anbefaler ikke å spille med + dette med mindre du absolutt trenger ytelsen. enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: Aktiver Musebeveget Kart + description: Lar deg flytte rundt på kartet ved å bevege musen til kanten av + skjermen. Hastigheten avgjøres av Bevegelses Hastighet + instillingen. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Forstørr mot musepekeren + description: Hvis aktivert, vil forstørring skje mot der du har musepekeren + posisjonert, ellers vil det være midt i kjermen. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Kart Ressursser Størrelse + description: Kontrollerer størrelsen på former på kartoversikten (når zoomet + ut). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Hurtigtaster hint: "Tips: Husk å bruke CTRL, SHIFT and ALT! De gir deg flere @@ -976,21 +1087,30 @@ keybindings: menuClose: Lukk meny switchLayers: Bytt lag wire: Energikabel - balancer: Balancer - storage: Storage - constant_signal: Constant Signal + balancer: Balanserer + storage: Lagringsboks + constant_signal: Konstant Signal logic_gate: Logic Gate - lever: Switch (regular) + lever: Bryter (vanlig) filter: Filter - wire_tunnel: Wire Crossing - display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare - item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + wire_tunnel: Kabel Krysser + display: Skjerm + reader: Belte Leser + virtual_processor: Virituell Kutter + transistor: Transistorer + analyzer: Form Analyserer + comparator: Sammenlign + item_producer: Gjenstands Produserer (Sandbox) + copyWireValue: "Kabler: Kopier verdi under musen" + rotateToUp: "Roter: Pek Opp" + rotateToDown: "Roter: Pek Ned" + rotateToRight: "Roter: Pek Høyre" + rotateToLeft: "Roter: Pek Venstre" + constant_producer: Konstant Produserer + goal_acceptor: Mål Mottaker + block: Blokker + massSelectClear: Tøm Belter + showShapeTooltip: Show shape output tooltip about: title: Om dette spillet body: >- @@ -1016,63 +1136,153 @@ demo: exportingBase: Eksporter hele basen som bilde settingNotAvailable: Ikke tilgjengelig i demoversjonen. tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing <b>R</b>. - - Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use <b>T</b> to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with <b>T</b> - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding <b>SHIFT</b> will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding <b>CTRL</b> allows to place multiple buildings. - - You can hold <b>ALT</b> to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use <b>CTRL</b> + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - Hovedbygningen godtar alle mulige former, ikke kun nåværende form! + - Sørg for at dine fabrikker er modulære - det vil betale for seg selv! + - Ikke bygg for nære hovedbygningen. Ellers vil det bli et stort kaos! + - Hvis stabling ikke funker, prøv å bytt inngangene. + - Du kan veksle mellom belteplanleggerens orienterinv ved å trykke <b>R</b>. + - Hold nede <b>CTRL</b> for å dra belter uten auto orientering. + - Fordelingen forblir det samme, så lenge alle oppgraderingene er på samme + nivå. + - Seriell utføring er mer effektivt enn paralell utføring. + - Du vil låse opp flere varianter av bygninger senere i spillet! + - Du kan bruke <b>T</b> for å bytte mellom forskjellige varianter. + - Symmetri er nøkkelen! + - Du kan veve forskjellige typer av tuneller. + - Prøv å bygg kompate fabrikker - Det vil betale for seg selv! + - Fargeleggeren har en speilvent variant som du kan velge med <b>T</b> + - Å ha riktig forhold mellom bygningsantall vil maksimisere effektiviteten. + - På maks nivå, vil 5 utdragere fylle et eget belte. + - Ikke glem tunneller! + - Du trenger ikke å dele opp gjenstander jent for maks effektivitet. + - Holdt nede <b>SHIFT</b> for å aktivere belte planleggeren, den lar deg + plassere lange linjer med belter veldig lett. + - Kutteren vil alltid kutte vertikalt, uavhengig av orientasjonen. + - For hvit farge, kombiner alle tre fargene. + - Lagringbygningen prioriterer første utgangen. + - Sett av tid til å bygge repeterbare løsninger - det er verdt det! + - Hold nede <b>CTRL</b> for å plassere flere av samme bygning. + - Du kan holde nede <b>ALT</b> for å reversjere plasseringen av plasserte + belter. + - Effektivitet er nøkkelen! + - Form feltene som er lengt unna fra hovedbygget er mer avanserte. + - Bygninger har en begrenset hastighet. Del de opp for maksimum effektivitet. + - Bruk balanserere for å maksimere effektivitet. + - Organisering er viktig. Prøv å ikke kryss belter for mye. + - Planlegg i forveien, ellers vil det bli kaos! + - Ikke fjern dine gamle fabrikker! Du trenger de for å åpne oppgraderinger. + - Prøv å slå nivå 20 på egenhånd før du oppsøker hjelp! + - Ikke overkompliser ting, prøv å gjør det simpelt så kommer du langt. + - Det kan hende at du må gjenbruke fabrikker senere. Planlegg dine fabrikker + til å være gjenbrukbare. + - Noen ganger, kan du finne formen du trenger på kartet uten å lage det med + stablere. + - Fulle vindmøller / pinnehjul finnes ikke naturlig. + - Fargelegg dine former før du kutter de for maks effektivitet. + - Med moduler er plass bare en oppfatning; en bekymring for dødelige + mennesker. + - Lag en separat blueprint fabrikk. De er viktig for moduler. + - Sjekk ut fargeblanderen, og dine spørsmål vil bli besvart. + - Bruk <b>CTRL</b> + Trykk for å velge et område. + - Bygge for nære hovedbygnignen kan sette en stopper for senere prosjekter. + - Tegnestift ikonet ved siden av hver form i oppgraderingslisten låser det + fast til skjermen. + - Bland alle primærfargene sammen for å lage hvis farge! + - Du har et evit kart. Ikke tett sammen fabrikken, utvid! + - Sjekk også ut Factorio! Det er mitt favorittspill. + - 4veis Kutteren kutter med klokken, starter fra øverst i høyre! + - Du kan laste ned dine lagrede spill på hovedmenyen! + - Dette spillet har mange fornuftige hurtigtaster! Sjekk de ut på + instillinger. + - Dette spillet har masse instillinger, sørg for å sjekke de ut! + - Markøren på hjovedbygningen har et lite kompass for å indikere retningen + til den! + - For å tømme belter, kutt området også lim det inn igjen på samme område. + - Trykk F4 for å vise din FPS og Tick Rate. + - Trykk F4 to ganger for å vise ruten til din mus og kamera. + - Du kan trykke på en festet form på venstre for å fjerne festingen. +puzzleMenu: + play: Spill + edit: Endre + title: Puslespillmodus + createPuzzle: Lag Puslespill + loadPuzzle: Last inn + reviewPuzzle: Gjennomgå & Publiser + validatingPuzzle: Validerer Puslespill + submittingPuzzle: Publiserer Puslespill + noPuzzles: Det er for tiden ingen puslespill i denne seksjonen. + categories: + levels: Nivåer + new: Ny + top-rated: Høyest Rangert + mine: Mine Puslespill + easy: Lett + hard: Vanskelig + completed: Fullført + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Ugyldig Puslespill + noProducers: Venligst plasser en Konstant Produserer! + noGoalAcceptors: Vennligst plasser en Mål Mottaker! + goalAcceptorNoItem: En eller flere Mål Mottakere har ikke blitt tildelt en + gjenstand. Lever en form til dem for å sette målet. + goalAcceptorRateNotMet: En eller flere Mål Mottakere får ikke nok gjenstander. + Sørg for at indikatorene er grønn for alle mottakerene. + buildingOutOfBounds: En eller flere bygninger er utenfor det byggbare området. + Enten øk området eller fjern dem. + autoComplete: Ditt puslespill fullførte seg selv automatisk! Sørg for at dine + Konstant Pr Produserere ikke leverer direkte til dine Mål Mottakere. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Du gjør en handling for ofte. Vennligst vent litt. + invalid-api-key: Kunne ikke kommunisere med kjernen, vennligst prøv å + oppdater/start spillet på nytt (Ugyldig Api Nøkkel). + unauthorized: Kunne ikke kommunisere med kjernen, vennligst prøv å + oppdater/start spillet på nytt (Uautorisert). + bad-token: Kunne ikke kommunisere med kjernen, vennligst prøv å oppdater/ start + spillet på nytt (Ugyldig token). + bad-id: Ugyldig Puslespill identifikator. + not-found: Det gitte puslespillet kunne ikke bli funnet. + bad-category: Den gitte kategorien kunne ikke bli funnet. + bad-short-key: Den gitte korte koden er ugyldig. + profane-title: Ditt puslespill sitt navn inneholder stygge ord. + bad-title-too-many-spaces: Ditt puslespill sitt navn er for kort. + bad-shape-key-in-emitter: En Konstant Produserer har en ugyldig gjenstand. + bad-shape-key-in-goal: En Mål Mottaker har en ugyldig gjenstand. + no-emitters: Ditt puslespill inneholder ingen Konstante Produserere. + no-goals: Ditt puslespill inndeholder ingen Mål Mottakere. + short-key-already-taken: Denne korte koden er allerede i bruk, vennligst bruk en annen. + can-not-report-your-own-puzzle: Du kan ikke rapportere ditt eget puslespill. + bad-payload: Forespørselen inneholder ugyldig data. + bad-building-placement: Ditt puslespill inneholder ugyldig plasserte bygninger. + timeout: Forespørselen timet ut. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-pl.yaml b/translations/base-pl.yaml index 360f3cad..a73dc869 100644 --- a/translations/base-pl.yaml +++ b/translations/base-pl.yaml @@ -14,40 +14,14 @@ steamPage: Początkowo przekształcanie kształtów będzie proste, ale później będziesz również musiał je malować - wymaga to wydobywania i łączenia barwników! Kupienie gry w serwisie Steam przyznaje Ci dostęp do pełnej wersji, ale możesz również skorzystać z wersji demonstracyjnej na strone shapez.io i rozważyć zakup później! - title_advantages: Korzyści wersji pełnej - advantages: - - <b>12 Nowych poziomów</b> (razem 26 poziomów)s - - <b>18 Nowych budynków</b> umożliwiających zbudowanie całkowicie - automatycznej fabryki! - - <b>20 Poziomów ulepszeń</b> zapewniających wiele godzin zabawy! - - <b>Aktualizacja z przewodami</b> dodająca całkowicie nowy wymiar! - - <b>Tryb Ciemny</b>! - - Nielimitowane zapisy gry - - Nielimitowane znaczniki - - Wspomóż mnie! ❤️ - title_future: Planowane funkcje - planned: - - Biblioteka schematów (Tylko dla Wersji pełnej) - - Osiągniecia - - Tryb zagadek - - Minimapa - - Modyfikacje - - Tryb piaskownicy - - ... i wiele więcej! - title_open_source: Ta gra jest open-source! - title_links: Linki - links: - discord: Oficjalny serwer Discord - roadmap: Plany gry - subreddit: Reddit - source_code: Kod źródłowy (GitHub) - translate: Pomóż w tłumaczeniu - text_open_source: >- - Każdy może pomóc w tworzeniu gry, jestem aktywny wśród społeczności i - próbuję odbierać wszystkie sugestie i brać je pod uwagę, gdzie tylko - jest to możliwe. - - Sprawdź moją tablicę Trello, by zobaczyć moje dalsze plany! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Ładowanie error: Wystąpił błąd @@ -79,6 +53,7 @@ global: escape: ESC shift: SHIFT space: SPACJA + loggingIn: Logging in demoBanners: title: Wersja demonstracyjna intro: Kup pełną wersję gry, by odblokować więcej funkcji! @@ -98,6 +73,12 @@ mainMenu: madeBy: Gra wykonana przez <author-link> subreddit: Reddit savegameUnnamed: Zapis bez nazwy + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -111,6 +92,9 @@ dialogs: viewUpdate: Zobacz aktualizację showUpgrades: Pokaż ulepszenia showKeybindings: Pokaż Klawiszologię + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Błąd importowania text: "Nie udało się zaimportować twojego zapisu gry:" @@ -186,8 +170,8 @@ dialogs: wersję gry dla nielimitowanych znaczników! massCutConfirm: title: Potwierdź wycinanie - desc: Wycinasz sporą ilość maszyn (<count> gwoli ścisłości)! Czy na pewno chcesz - kontynuować? + desc: Wycinasz sporą ilość maszyn (<count> w roli ścisłości)! Czy na pewno + chcesz kontynuować? exportScreenshotWarning: title: Tworzenie zrzutu fabryki desc: Zamierzasz wyeksportować swoją fabrykę jako zrzut ekranu. W przypadku @@ -211,7 +195,72 @@ dialogs: desc: Dla tego poziomu dostępny jest video tutorial. Chcesz go obejrzeć? tutorialVideoAvailableForeignLanguage: title: Dostępny tutorial - desc: Dla tego poziomu dostępny jest video tutorial w języku angielskim. Chcesz go obejrzeć? + desc: Dla tego poziomu dostępny jest video tutorial w języku angielskim. Chcesz + go obejrzeć? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Ruch @@ -233,6 +282,7 @@ ingame: clearSelection: Wyczyść zaznaczenie pipette: Wybierz obiekt z mapy switchLayers: Przełącz warstwy + clearBelts: Clear belts colors: red: Czerwony green: Zielony @@ -317,33 +367,34 @@ ingame: budynku!<br><br>PS: <strong>Kliknij i przeciągnij</strong> taśmociąg myszką!" 1_3_expand: 'To <strong>NIE JEST</strong> gra "do poczekania"! Buduj więcej - taśmociągów i ekstraktorów, by wydobywać - szybciej.<br><br>PS: Przytrzymaj <strong>SHIFT</strong>, by - postawić wiele ekstraktorów. Naciśnij <strong>R</strong>, by je - obracać.' - 2_1_place_cutter: "Teraz umieść <strong>przecinak</strong> aby przeciąć koła na dwie - połowy!<br><br> PS: Przecinak zawsze tnie <strong>pionowo</strong> - niezależnie od swojej orientacji." - 2_2_place_trash: Przecinak może się <strong>zapchać i zablokować</strong>!<br><br> Użyj - <strong>śmietnik</strong> aby usunąć obecnie (!) nie potrzebne elementy. - 2_3_more_cutters: - "Dobra robota! Teraz umieść <strong>2 kolejne przecinaki</strong>,aby przyspieszyć - ten wolny proces!<br><br> PS: Użyj <strong>klawiszy 0-9</strong>, - aby szybciej uzyskać dostęp do budynków!" + taśmociągów i ekstraktorów, by wydobywać szybciej.<br><br>PS: + Przytrzymaj <strong>SHIFT</strong>, by postawić wiele + ekstraktorów. Naciśnij <strong>R</strong>, by je obracać.' + 2_1_place_cutter: "Teraz umieść <strong>przecinak</strong> aby przeciąć koła na + dwie połowy!<br><br> PS: Przecinak zawsze tnie + <strong>pionowo</strong> niezależnie od swojej orientacji." + 2_2_place_trash: Przecinak może się <strong>zapchać i + zablokować</strong>!<br><br> Użyj <strong>śmietnik</strong> aby + usunąć obecnie (!) nie potrzebne elementy. + 2_3_more_cutters: "Dobra robota! Teraz umieść <strong>2 kolejne + przecinaki</strong>,aby przyspieszyć ten wolny proces!<br><br> + PS: Użyj <strong>klawiszy 0-9</strong>, aby szybciej uzyskać + dostęp do budynków!" 3_1_rectangles: "Teraz wydobądź kilka kwadratów! <strong>Wybuduj - ekstraktory</strong> i połącz je do głównego budynku.<br><br> PS: - Przytrzymaj <strong>SHIFT</strong> i przeciągnij taśmociąg, aby uruchomić - planer taśmociągu!" - 21_1_place_quad_painter: Umieść <strong>malarz poczwórny</strong> i wykonaj kilka - biało-czerwonych kółek! + ekstraktory</strong> i połącz je do głównego budynku.<br><br> + PS: Przytrzymaj <strong>SHIFT</strong> i przeciągnij taśmociąg, + aby uruchomić planer taśmociągu!" + 21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some + <strong>circles</strong>, <strong>white</strong> and + <strong>red</strong> color! 21_2_switch_to_wires: Przełącz się na warstwę przewodów wciskając - <strong>E</strong>!<br><br> Następnie <strong>połącz wszystkie cztery - wejścia</strong> malarza przewodem! - 21_3_place_button: Świetnie! Teraz umieść <strong>Przełącznik</strong> i połącz go - z przewodem! + <strong>E</strong>!<br><br> Następnie <strong>połącz wszystkie + cztery wejścia</strong> malarza przewodem! + 21_3_place_button: Świetnie! Teraz umieść <strong>Przełącznik</strong> i połącz + go z przewodem! 21_4_press_button: "Wciśnij przełącznik aby <strong>emitował sygnał - Prawda</strong> i aktywował malarza.<br><br> PS: Nie - musisz łączyć wszystkich wejść! Spróbuj połączyć tylko dwa." + Prawda</strong> i aktywował malarza.<br><br> PS: Nie musisz + łączyć wszystkich wejść! Spróbuj połączyć tylko dwa." connectedMiners: one_miner: 1 ekstraktor n_miners: <amount> ekstraktorów @@ -362,9 +413,6 @@ ingame: buildings: title: 18 Nowych Budynków desc: W pełni zautomatyzuj produkcję! - savegames: - title: ∞ Zapisów Gry - desc: Twórz tyle, ile potrzebujesz! upgrades: title: ∞ Poziomów Ulepszeń desc: To demo posiada tylko 5! @@ -380,6 +428,50 @@ ingame: support: title: Wspomóż mnie desc: Tworzę tą grę w swoim wolnym czasie! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Taśmociągi, Dystrybutory & Tunele @@ -459,9 +551,9 @@ buildings: kształty używając 1 barwnika. quad: name: Malarz (Poczwórny) - description: Pozwala pomalować każdą ćwiartkę osobno. Tylko - sloty z podłączonym <strong>sygnałem "Prawda"</strong> w warstwie przewodów - będą malowane! + description: Pozwala pomalować każdą ćwiartkę osobno. Tylko sloty z podłączonym + <strong>sygnałem "Prawda"</strong> w warstwie przewodów będą + malowane! mirrored: name: Malarz description: Koloruje kształt za pomocą koloru dostarczonego od boku. @@ -597,6 +689,18 @@ buildings: name: Producent kształtów description: Dostępne tylko w trybie piaskownicy. Produkuje przedmioty z sygnału danego na warstwie przewodów na główną warstwę. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Przecinanie Kształtów @@ -664,7 +768,7 @@ storyRewards: reward_storage: title: Magazyn desc: Właśnie odblokowałeś <strong>magazyn</strong> - Pozwala na przechowywanie - przedmiotów, do pewnej ilości!<br><br> Prawe wyjście posiada większy + przedmiotów, do pewnej ilości!<br><br> Lewe wyjście posiada większy piorytet, więc może być on użyty jako <strong>brama przepełnieniowa</strong>! reward_freeplay: @@ -696,9 +800,9 @@ storyRewards: pełnej! reward_balancer: title: Dystrybutor - desc: Wielofunkcyjny <strong>dystrybutor</strong> został odblokowany - Może - być wykorzystany przy budowaniu większych fabryk do <strong>łączenia i dzielenia - przedmiotów</strong> na kilku taśmociągach! + desc: Wielofunkcyjny <strong>dystrybutor</strong> został odblokowany - Może być + wykorzystany przy budowaniu większych fabryk do <strong>łączenia i + dzielenia przedmiotów</strong> na kilku taśmociągach! reward_merger: title: Kompaktowy łącznik desc: Właśnie odblokowałeś <strong>łącznik</strong> - typ @@ -712,8 +816,8 @@ storyRewards: użyteczny! reward_rotater_180: title: Obracacz (180°) - desc: Właśnie odblokowałeś kolejny wariant <strong>obrazacza</strong>! - - Pozwala ci na obrócenie kształtu o 180 stopni! + desc: Właśnie odblokowałeś kolejny wariant <strong>obrazacza</strong>! - Pozwala + ci na obrócenie kształtu o 180 stopni! reward_display: title: Wyświetlacz desc: "Właśnie odblokowałeś <strong>Wyświetlacz</strong> - Podłącz sygnał na @@ -747,19 +851,20 @@ storyRewards: reward_wires_painter_and_levers: title: Przewody i poczwórny malarz desc: "Właśnie odblokowałeś <strong>Warstwę Przewodów</strong>: Jest to osobna - warstwa powyżej zwykłej warstwy i wprowadza wiele nowych możliwości.<br><br> - Na początku odblokowałem dla Ciebie <strong>Poczwórnego Malarza</strong> - - Podłącz ćwiartki, które chcesz pomalować, na warstwie przewodów!!<br><br> - Aby przełączyć się na warstwę przewodów, wciśnij - <strong>E</strong>. <br><br> PS: <strong>Włącz podpowiedzi</strong> w - ustawieniach, aby aktywować samouczek przewodów!" + warstwa powyżej zwykłej warstwy i wprowadza wiele nowych + możliwości.<br><br> Na początku odblokowałem dla Ciebie + <strong>Poczwórnego Malarza</strong> - Podłącz ćwiartki, które + chcesz pomalować, na warstwie przewodów!!<br><br> Aby przełączyć się + na warstwę przewodów, wciśnij <strong>E</strong>. <br><br> PS: + <strong>Włącz podpowiedzi</strong> w ustawieniach, aby aktywować + samouczek przewodów!" reward_filter: title: Filtr przedmiotów desc: Właśnie odblokowałeś <strong>Filtr Przedmiotów</strong>! Będzie on - przekierowywał przedmioty do górnego lub prawego wyjścia, zależnie od - tego, czy pasują one do sygnału z warstwy przewodów.<br><br> Możesz - również przekazać sygnał typu Prawda/Fałsz, by całkowicie go włączyć - lub wyłączyć. + przekierowywał przedmioty do górnego lub prawego wyjścia, zależnie + od tego, czy pasują one do sygnału z warstwy przewodów.<br><br> + Możesz również przekazać sygnał typu Prawda/Fałsz, by całkowicie go + włączyć lub wyłączyć. reward_demo_end: title: Koniec wersji demo desc: Dotarłeś do końca wersji demo! @@ -898,8 +1003,8 @@ settings: budynki podczas budowania używając tego samego przycisku. lowQualityTextures: title: Tekstury niskiej jakości (Brzydkie) - description: Używa niskiej jakości tekstur, by zwiększyć wydajność. Spowoduje to, - że gra będzie wyglądać bardzo brzydko! + description: Używa niskiej jakości tekstur, by zwiększyć wydajność. Spowoduje + to, że gra będzie wyglądać bardzo brzydko! displayChunkBorders: title: Wyświetl granice obszarów description: Gra jest podzielona na obszary o wielkości 16x15 kratek. Włączenie @@ -923,8 +1028,14 @@ settings: description: Powiększ w kierunku pozycji kursora myszylub do środka ekranu. mapResourcesScale: title: Rozmiar mapy zasobów - description: Steruje rozmiarem kształtów w przeglądzie mapy (podczas pomniejszenia). + description: Steruje rozmiarem kształtów w przeglądzie mapy (podczas + pomniejszenia). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Klawiszologia hint: "Wskazówka: Upewnij się, że wykorzystujesz CTRL, SHIFT i ALT! Pozwalają na @@ -998,6 +1109,15 @@ keybindings: comparator: Porównywacz item_producer: Producent Przedmiotów (Tryb Piaskownicy) copyWireValue: "Przewody: Skopiuj wartość pod kursorem" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: O Grze body: 'Ta gra jest open-source. Rozwijana jest przez <a @@ -1096,3 +1216,88 @@ tips: - Naciśnij F4, by zobaczyć ilość FPS i tempo ticków. - Naciśnij F4 dwa razy, by zobaczyć kratkę twojej myszy i kamery. - Możesz kliknąć przypięty kształt po lewej stronie, by go odpiąć. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index c52816d4..b976e5dc 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -13,38 +13,14 @@ steamPage: Enquanto no começo você apenas processa as formas, mais a frente você deve pintá-las - para isso você deve extrair e misturar cores! Comprar o jogo na Steam te garante acesso à versão completa, mas você pode jogar a versão demo em shapez.io primeiro e decidir depois! - title_advantages: Vantagens da versão completa - advantages: - - <b>12 Novos Níveis</b> para um total de 26 níveis! - - <b>18 Novas Construções</b> para uma fábrica completamente automática! - - <b>20 Níveis de Melhorias</b> para muitas horas de diversão! - - <b>Atualização da Fiação</b> para uma dimensão completamente nova! - - <b>Modo Escuro</b>! - - Saves ilimitados - - Marcadores ilimitados - - Me ajuda! ❤️ - title_future: Conteúdo Planejado - planned: - - Biblioteca de projetos (Exclusivo para a versão completa) - - Conquistas da Steam - - Modo Puzzle - - Minimapa - - Mods - - Modo Sandbox - - ... e muito mais! - title_open_source: Este jogo tem código aberto! - title_links: Links - links: - discord: Discord Oficial - roadmap: Linha do Tempo - subreddit: Subreddit - source_code: Código-fonte (GitHub) - translate: Ajude a traduzir - text_open_source: >- - Qualquer um pode contribuir, estou ativamente envolvido com a comunidade - e tento ler todas as sugestões e receber críticas quando possível. - - Cheque minha lousa no trello para a linha do tempo completa! + what_others_say: O que as pessoas dizem sobre o shapez.io + nothernlion_comment: Este jogo é ótimo - estou me divertindo muito jogando e o + tempo passou voando. + notch_comment: Droga. Eu realmente deveria dormir, mas eu acho que acabei de + descobrir como fazer um computador no shapez.io + steam_review_comment: Este jogo roubou minha vida e eu não a quero de volta. + Jogo de fábrica muito descontraído que não me deixa parar de fazer + linhas mais eficientes. global: loading: Carregando error: Erro @@ -76,9 +52,10 @@ global: escape: ESC shift: Shift space: Espaço + loggingIn: Entrando demoBanners: title: Versão Demo - intro: Compre a versão completa para desbloquear todas os recursos! + intro: Compre a versão completa para desbloquear todos os recursos! mainMenu: play: Jogar continue: Continuar @@ -95,6 +72,12 @@ mainMenu: savegameLevel: Nível <x> savegameLevelUnknown: Nível desconhecido savegameUnnamed: Sem nome + puzzleMode: Modo Puzzle + back: Voltar + puzzleDlcText: Você gosta de compactar e otimizar fábricas? Adquira a Puzzle DLC + já disponível na Steam para se divertir ainda mais! + puzzleDlcWishlist: Adicione já a sua lista de desejos! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -108,6 +91,9 @@ dialogs: viewUpdate: Atualizações showUpgrades: Melhorias showKeybindings: Controles + retry: Tentar novamente + continue: Continue + playOffline: Jogar Offline importSavegameError: title: Erro de importação text: "Houve uma falha ao importar seu jogo salvo:" @@ -199,13 +185,78 @@ dialogs: title: Renomear Save desc: Você pode renomear seu save aqui. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Tutorial disponível + desc: Existe um tutorial em vídeo para esse nível! Gostaria de assistí-lo? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Tutorial disponível + desc: Existe um tutorial em vídeo para esse nível, mas está disponível apenas em + Inglês. Gostaria de assistí-lo? + editConstantProducer: + title: Selecionar Item + puzzleLoadFailed: + title: O carregamento dos desafios falhou + desc: "Infelizmente os desafios não puderam ser carregados:" + submitPuzzle: + title: Enviar desafio + descName: "Dê um nome ao seu desafio:" + descIcon: "Por favor crie um código exclusivo, o qual será o ícone do seu + Desafio (Você pode gera-los <link>aqui</link>, ou escolha um dos + gerados aleatoriamente abaixo):" + placeholderName: Nome do desafio + puzzleResizeBadBuildings: + title: Mudar o tamanho não é possível + desc: Você não pode deixar a zona menor, porque algumas construções ficariam + fora dela. + puzzleLoadError: + title: Desafio Ruim + desc: "O desafio não pôde ser carregado:" + offlineMode: + title: Modo Offline + desc: Não conseguimos nos conectar aos servidores, então o jogo terá que ser + jogado no Modo Offline. Por favor garanta que você tenha uma conexão + ativa com a internet. + puzzleDownloadError: + title: Erro no download + desc: "Falha ao baixar o desafio:" + puzzleSubmitError: + title: Erro no envio + desc: "Erro ao enviar seu desafio:" + puzzleSubmitOk: + title: Desafio publicado + desc: Parabéns! Seu desafio foi publicado e pode ser acessado por outros + jogadores. Você pode acha-lo na categoria "Meus Desafios". + puzzleCreateOffline: + title: Modo Offline + desc: Como você está no Modo Offline, não será possível salvar e/ou publicar + seus desafios. Você deseja continuar? + puzzlePlayRegularRecommendation: + title: Recomendação + desc: Eu <strong>fortemente</strong> recomendo jogar o jogo normal até o nível + 12 antes de se aventurar na Puzzle DLC, senão você poderá encontrar + mecânicas que ainda não foram introduzidas. Você ainda deseja + continuar? + puzzleShare: + title: Código copiado + desc: O código do desafio (<key>) foi copiado para sua área de transferência! + Ele pode ser inserido no menu de desafios para acessar o desafio. + puzzleReport: + title: Denunciar Desafio + options: + profane: Ofensivo + unsolvable: Impossível + trolling: Antijogo + puzzleReportComplete: + title: Obrigado pelo seu feedback! + desc: O desafio foi marcado. + puzzleReportError: + title: Falha ao denunciar + desc: "Sua denúncia não pôde ser processada:" + puzzleLoadShortKey: + title: Insira código + desc: Insira o código do desafio para carrega-lo. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Mover @@ -227,6 +278,7 @@ ingame: clearSelection: Limpar Seleção pipette: Conta-Gotas switchLayers: Trocar Camadas + clearBelts: Clear belts colors: red: Vermelho green: Verde @@ -239,7 +291,7 @@ ingame: uncolored: Sem cor buildingPlacement: cycleBuildingVariants: Aperte <key> para variações. - hotkeyLabel: "Hotkey: <key>" + hotkeyLabel: "Tecla: <key>" infoTexts: speed: Velocidade range: Distância @@ -315,30 +367,33 @@ ingame: esteiras para concluir o objetivo mais rapidamente.<br><br>Dica, segure <strong>SHIFT</strong> para colocar vários extratores e use <strong>R</strong> para girá-los. - 2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two - halves!<br><br> PS: The cutter always cuts from <strong>top to - bottom</strong> regardless of its orientation." - 2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a - <strong>trash</strong> to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed - up this slow process!<br><br> PS: Use the <strong>0-9 - hotkeys</strong> to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4 - extractors</strong> and connect them to the hub.<br><br> PS: - Hold <strong>SHIFT</strong> while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some - <strong>circles</strong>, <strong>white</strong> and - <strong>red</strong> color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - <strong>E</strong>!<br><br> Then <strong>connect all four - inputs</strong> of the painter with cables! - 21_3_place_button: Awesome! Now place a <strong>Switch</strong> and connect it - with wires! - 21_4_press_button: "Press the switch to make it <strong>emit a truthy - signal</strong> and thus activate the painter.<br><br> PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "Agora coloque um <strong>Cortador</strong> para cortar os + círculos em duas metades!<br><br> PS: O cortador sempre corta de + <strong>cima para baixo</strong> independentemente de sua + orientação." + 2_2_place_trash: O cortador pode <strong>emtupir e parar</strong>!<br><br> Use + um <strong>lixo</strong> para se livrar do que atualmente (!) + não for necessário. + 2_3_more_cutters: "Bom trabalho! Agora coloque <strong>mais 2 + cortadores</strong> para acelerar este processo lento!<br><br> + PS: Use as <strong> teclas 0-9 </strong> para acessar as + construções mais rápido!" + 3_1_rectangles: "Vamos extrair alguns retângulos! <strong>Construa 4 + extratores</strong> e conecte-os ao hub.<br><br> PS: Segure + <strong>SHIFT</strong> enquanto arrasta a esteira para ativar o + planejador de esteiras!" + 21_1_place_quad_painter: Coloque o <strong>pintor (quádruplo)</strong> e consiga + alguns <strong>circulos</strong>, pigmento + <strong>branco</strong> e <strong>vermelho</strong>! + 21_2_switch_to_wires: Troque para o nível de fios pressionando + <strong>E</strong>!<br><br> E então <strong>conecte todos as + quatro entradas</strong> do pintor com fios! + 21_3_place_button: Incrivel! Agora coloque um <strong>interruptor</strong> e o + conecte com fio! + 21_4_press_button: "Pressione o interruptor para fazé-lo <strong>emitir um sinal + verdadeiro</strong> o que ativará o pintor.<br><br> OBS: Você + não precisa conectar todas as entradas! Tente conectar somente + duas." connectedMiners: one_miner: 1 Extrator n_miners: <amount> Extratores @@ -357,9 +412,6 @@ ingame: buildings: title: 18 Novas Construções desc: Automatize sua fábrica inteira! - savegames: - title: Saves ∞ - desc: Quantos o seu coração mandar! upgrades: title: ∞ Níveis de Melhorias desc: Essa demo tem apenas 5! @@ -375,6 +427,52 @@ ingame: support: title: Me ajuda desc: Eu desenvolvo o jogo no meu tempo livre! + achievements: + title: Conquistas + desc: Consiga todas elas! + puzzleEditorSettings: + zoneTitle: Zona + zoneWidth: Largura + zoneHeight: Altura + trimZone: Cortar + clearItems: Limpar Items + share: Compartilhar + report: Denunciar + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Criador de Desafios + instructions: + - 1. Coloque <strong>Produtores Constantes</strong> para gerar itens + e cores ao jogador + - 2. Monte uma ou mais itens que você quer que o jogador produza e + entregue em um ou mais <strong>Receptores de Objetivo</strong> + - 3. Uma vez que um Receptor de Objetivo recebe uma item por uma + certa quantidade de tempo, ele <strong>a salva como seu + objetivo</strong> , o qual o jogador terá que produzir depois + (Indicato pela <strong>insígnia verde</strong>). + - 4. Clique no <strong>botao de travar</strong> de uma construção + para desabilita-la. + - 5. Uma vez que você clicou em revisar, seu desafio será validado e + você poderá publica-lo. + - 6. Quando seu desafio for publicado, <strong>todas as construções + serão removidas</strong> exceto os Produtores Constantes e + Receptores de Objetivo - Essa é a parte que o jogador terá que + descobrir sozinho, por isso se chama desafio :) + puzzleCompletion: + title: Desafio Completo! + titleLike: "Clique no coração se você gostou do desafio:" + titleRating: O qual difícil foi esse desafio? + titleRatingDesc: Sua avaliação me ajuda a te fazer sugestões melhores no futuro! + continueBtn: Continuar jogando + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Autor + shortKey: Código + rating: Dificuldade + averageDuration: Duração média + completionRate: Taxa de sucesso shopUpgrades: belt: name: Esteiras, Distribuidores e Túneis @@ -442,7 +540,7 @@ buildings: name: Rotacionador (Anti-horário) description: Gira as formas no sentido anti-horário em 90 graus. rotate180: - name: Rotacionador (180) + name: Rotacionador (180°) description: Gira as formas em 180 graus. stacker: default: @@ -543,7 +641,7 @@ buildings: filter: default: name: Filtro - description: Conecte um sinal para rotear todos os itens desejador para o topo e + description: Conecte um sinal para rotear todos os itens desejados para o topo e o restante para a direita. Pode ser controlado por sinais binários também. display: @@ -588,9 +686,22 @@ buildings: entrada direita. item_producer: default: - name: Fábricante de Itens + name: Fabricante de Itens description: Disponível no modo sandbox apenas, envia o sinal recebido do plano de fios para o plano regular. + constant_producer: + default: + name: Produtor Constante + description: Produz constantemente um item ou cor específica. + goal_acceptor: + default: + name: Receptor de Objetivo + description: Entregue itens ao Receptor de Objetivo para os definir como o + objetivo. + block: + default: + name: Bloco + description: Te permite bloquear um espaço. storyRewards: reward_cutter_and_trash: title: Cortando formas @@ -636,10 +747,10 @@ storyRewards: variantes</strong>! reward_miner_chainable: title: Extrator em Cadeia - desc: "You have unlocked the <strong>chained extractor</strong>! It can - <strong>forward its resources</strong> to other extractors so you - can more efficiently extract resources!<br><br> PS: The old - extractor has been replaced in your toolbar now!" + desc: "Você desbloqueou o <strong>extrator em cadeia</strong>! Ele + <strong>encaminha os recursos</strong> para outros extratores para + que você possa extrair recursos de forma mais eficiente!<br><br> + OBS: O velho extrator foi substituído na sua barra de ferramentas!" reward_underground_belt_tier_2: title: Túnel Classe II desc: Você desbloqueou uma nova variante do <strong>túnel</strong> - ele tem um @@ -656,10 +767,11 @@ storyRewards: pintor regular, mas processa <strong>duas formas ao mesmo tempo</strong>, consumindo apenas uma cor em vez de duas! reward_storage: - title: Acúmulo de excesso - desc: You have unlocked the <strong>storage</strong> building - It allows you to - store items up to a given capacity!<br><br> It priorities the left - output, so you can also use it as an <strong>overflow gate</strong>! + title: Armazém + desc: Você desbloqueou o <strong>armazém</strong> - Permite que você armazene + itens até uma certa capacidade!<br><br> Ele prioriza a saída da + esquerda, para que você também possa usá-lo como um <strong>portão + de excesso</strong>! reward_freeplay: title: Modo Livre desc: Você conseguiu! Você desbloqueou o <strong>modo livre</strong>! Isso @@ -689,9 +801,9 @@ storyRewards: desc: Parabéns! Aliás, mais conteúdo vindo na versão completa! reward_balancer: title: Balanceador - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + desc: O multifuncional <strong>balanceador</strong> foi desbloqueado - Ele pode + ser usado para construir fabricas maiores ao <strong>dividir e + juntar itens</strong> em múltiplas esteiras! reward_merger: title: Unificador Compacto desc: Você desbloqueou uma variante <strong>unificadora</strong> do @@ -703,7 +815,7 @@ storyRewards: você meça a passagem de itens em uma esteira.<br><br>Espere até você desbloquear os fios - ele se torna muito útil! reward_rotater_180: - title: Rotacionador (180 graus) + title: Rotacionador (180°) desc: Você acabou de desbloquear o <strong>rotacionador</strong> de 180 graus! - Ele permite que você rotacione uma forma em 180 graus (Surpresa! :D) reward_display: @@ -739,13 +851,14 @@ storyRewards: lembre de se divertir! reward_wires_painter_and_levers: title: Fios e Pintor Quádruplo - desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!<br><br> For the beginning I unlocked you the <strong>Quad - Painter</strong> - Connect the slots you would like to paint with on - the wires layer!<br><br> To switch to the wires layer, press - <strong>E</strong>. <br><br> PS: <strong>Enable hints</strong> in - the settings to activate the wires tutorial!" + desc: "Você acabou de desbloquear o <strong>nivel de fios</strong>: Ele é uma + dimensão separada da dimensão normal e introduz varias novas + mecanicas! <br><br> Para Começar eu desbloqueae para você o + <strong>pintor (quádruplo)</strong> - Conecte os espaços que você + gostaria de usar para pintar com fios no nivel de fios!<br><br> Para + entrar no nivel de fios, pressione <strong>E</strong>. <br><br> OBS: + <strong>Ligue as dicas</strong> nas configurações para ativar o + tutorial de fios!" reward_filter: title: Filtro de Itens desc: Você desbloqueou o <strong>Filtro de Itens</strong>! Ele irá rotear os @@ -919,17 +1032,22 @@ settings: description: Permite mover o mapa ao mover o cursor para as bordas da tela. A velocidade depende da configuração Velocidade de Movimento. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Zoom na direção do cursor + description: Se ativado, o zoom irá se deslocar na direção do cursor do seu + mouse. Caso contrário, irá para o meio da tela. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Tamanho do Mapa de Recursos + description: Controla o tamanho das formas no mapa de panorama (quando afasta o + zoom). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Controles - hint: "Tip: Certifique-se de usar CTRL, SHIFT e ALT! Eles permitem diferentes + hint: "Dica: Certifique-se de usar CTRL, SHIFT e ALT! Eles permitem diferentes opções de construção." resetKeybindings: Resetar Controles categoryLabels: @@ -1000,6 +1118,15 @@ keybindings: comparator: Comparador item_producer: Produtor de Itens (Sandbox) copyWireValue: "Fios: Copiar valor abaixo do cursor" + rotateToUp: "Rotação: Para cima" + rotateToDown: "Rotação: Para baixo" + rotateToRight: "Rotação: Para direita" + rotateToLeft: "Rotação: Para esquerda" + constant_producer: Produtor Constante + goal_acceptor: Receptor de Objetivo + block: Bloco + massSelectClear: Limpar esteiras + showShapeTooltip: Show shape output tooltip about: title: Sobre o jogo body: >- @@ -1093,3 +1220,90 @@ tips: - Pressione F4 para mostrar seu FPS e taxa de tiques. - Pressione F4 duas vezes para mostrar o ladrilho do seu mouse e da câmera. - Você pode clicar em uma forma fixada na esquerda para tirá-la de lá. +puzzleMenu: + play: Jogar + edit: Editar + title: Modo Puzzle + createPuzzle: Criar Desafio + loadPuzzle: Carregar + reviewPuzzle: Revisar e Publicar + validatingPuzzle: Validando Desafio + submittingPuzzle: Enviando Desafio + noPuzzles: Não existem desafios nesta categoria atualmente. + categories: + levels: Níveis + new: Novo + top-rated: Melhor Avaliados + mine: Meus Desafios + easy: Fácil + hard: Difícil + completed: Completados + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Desafio inválido + noProducers: Por favor coloque um Produtor Constante! + noGoalAcceptors: Por favor coloque um Receptor de Objetivo! + goalAcceptorNoItem: Um ou mais Receptores de Objetivo ainda não tiveram um item + determinado. Entregue um item a ele para definir seu objetivo. + goalAcceptorRateNotMet: Um ou mais Receptores de Objetivo não estão recebendo + itens suficientes. Garanta que os indicadores estejam verdes para + todos os Receptores. + buildingOutOfBounds: Uma ou mais construções estão fora da área construível. + Você pode aumentar a área ou removê-los. + autoComplete: Seu desafio se completa sozinho! Por favor garanta que seus + Produtores Constantes não estão entregando diretamente aos seus + Receptores de Objetivo. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Você está fazendo coisas muito rapidamente. Por favor espere um pouco. + invalid-api-key: Falha ao comunicar com o backend, por favor tente + atualizar/reiniciar o jogo (Chave API Inválida). + unauthorized: Falha ao comunicar com o backend, por favor tente + atualizar/reiniciar o jogo (Não autorizado). + bad-token: Falha ao comunicar com o backend, por favor tente atualizar/reiniciar + o jogo (Bad Token). + bad-id: Indentificador de desafio inválido. + not-found: O desafio não pôde ser achado. + bad-category: A categoria não pôde ser achada. + bad-short-key: O código é inválido. + profane-title: O nome do seu desafio contém palavras proibidas. + bad-title-too-many-spaces: O nome do seu desafio é muito curto. + bad-shape-key-in-emitter: Um Produtor Constante contém um item inválido. + bad-shape-key-in-goal: Um Receptor de Objetivo contém um item inválido. + no-emitters: Seu desafio não contém nenhum Produtor Constante. + no-goals: Seu desafio não contém nenhum Receptor de Objetivo. + short-key-already-taken: Esse código já está sendo usado, por favor escolha outro. + can-not-report-your-own-puzzle: Você não pode denunciar seu próprio desafio. + bad-payload: O pedido contém dados inválidos. + bad-building-placement: Seu desafio contém construções colocadas de forma inválida. + timeout: Acabou o tempo do pedido. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-pt-PT.yaml b/translations/base-pt-PT.yaml index a0d7901c..049e0d03 100644 --- a/translations/base-pt-PT.yaml +++ b/translations/base-pt-PT.yaml @@ -14,39 +14,14 @@ steamPage: Embora no inicio apenas tenhas de processar formas, mais tarde, vais ter de as colorir - para isto terás de extrair e misturar cores! Comprar o jogo na Steam dar-te-á acesso à versão completa, mas também podes jogar a versão demo em shapez.io primeiro e decidir mais tarde! - title_advantages: Vantagens da versão completa - advantages: - - <b>12 Novos Níveis</b> para um total de 26 Níves - - <b>18 Novas Construções</b> para uma fábrica totalmente automatizada! - - <b>20 Níveis de Melhoria</b> para muitas horas de diversão! - - <b>Atualização de Fios</b> para uma dimensão totalmente nova! - - <b>Modo escuro</b>! - - Savegames ilimitados - - Marcos ilimitados - - Ajuda-me! ❤️ - title_future: Conteúdo Planeado - planned: - - Biblioteca Blueprint (Exclusivo na versão Completa) - - Conquistas na Steam - - Modo Puzzle - - Minimapa - - Modos - - Modo Sandbox - - ... e Muito Mais! - title_open_source: Este jogo é open source (código aberto)! - title_links: Links - links: - discord: Discord Oficial - roadmap: Roteiro de desenvolvimento - subreddit: Subreddit - source_code: Código Fonte (GitHub) - translate: Ajuda a Traduzir - text_open_source: >- - Qualquer um pode contribuir, estou ativamente envolvido na comunidade e - tento ver todas as sugestões e ter em consideração o feedback recebido - assim que possível. - - Segue o meu trello board para veres todo o roteiro de desenvolvimento! + what_others_say: O que dizem sobre o shapez.io + nothernlion_comment: Este é um jogo fantástico - Estou a ter um bom bocado + enquanto o jogo, e o tempo parece que voa. + notch_comment: Ora bolas. Eu devia ir dormir, mas acho que acabei de descobrir + como criar computorizar no shapez.io + steam_review_comment: Este jogo roubou a minha vida e não a quero de volta. Jogo + de fábrica relaxante que não me deixa parar de fazer as minhas linhas + cada vez mais eficientes. global: loading: A Carregar error: Erro @@ -78,6 +53,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: Versão Demo intro: Compra a versão completa para desbloqueares todas as funcionalidades! @@ -98,6 +74,12 @@ mainMenu: madeBy: Criado por <author-link> subreddit: Reddit savegameUnnamed: Sem Nome + puzzleMode: Modo Puzzle + back: Voltar + puzzleDlcText: Gostas de compactar e otimizar fábricas? Adquire agora o DLC + Puzzle na Steam para ainda mais diversão! + puzzleDlcWishlist: Lista de desejos agora! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -111,6 +93,9 @@ dialogs: viewUpdate: Ver Update showUpgrades: Mostrar Upgrades showKeybindings: Mostrar Atalhos + retry: Tentar novamente + continue: Continuar + playOffline: Jogar Offline importSavegameError: title: Erro de importação text: "Erro ao importar o teu savegame:" @@ -208,12 +193,80 @@ dialogs: desc: Podes renomear o teu savegame aqui. tutorialVideoAvailable: title: Tutorial Disponível - desc: Existe um vídeo de tutorial disponível para este nível! Gostarias de - o ver? + desc: Existe um vídeo de tutorial disponível para este nível! Gostarias de o + ver? tutorialVideoAvailableForeignLanguage: title: Tutorial Disponível - desc: Existe um vídeo de tutorial disponível para este nível, mas apenas - está disponível em Inglês. Gostarias de o ver? + desc: Existe um vídeo de tutorial disponível para este nível, mas apenas está + disponível em Inglês. Gostarias de o ver? + editConstantProducer: + title: Selecionar Item + puzzleLoadFailed: + title: Puzzles falharam a carregar + desc: "Infelizmente os puzzles não podem ser carregados:" + submitPuzzle: + title: Submeter Puzzle + descName: "Dá um nome ao teu puzzle:" + descIcon: "Por favor insere um pequeno código único que será a imagem do ícone + da teu puzzle (Podes gerar o código <link>aqui</link>, ou escolher + uma das seguintes sugestões aleatoriamente geradas.):" + placeholderName: Título do Puzzle + puzzleResizeBadBuildings: + title: Não é possível alterar o tamanho + desc: Não podes tornar a zona mais pequena, assim algumas das construções + ficariam fora da zona. + puzzleLoadError: + title: Mau puzzle + desc: "O puzzle falhou ao carregar:" + offlineMode: + title: Modo Offline + desc: Não conseguimos correr os servidores, sendo assim o jogo tem de ser jogado + em modo offline. Por favor assegura-te de que tens uma boa conexão + de internet. + puzzleDownloadError: + title: Falha no Download + desc: "Falha ao fazer o download do puzzle:" + puzzleSubmitError: + title: Erro ao submeter + desc: "Falha ao submeter o teu puzzle:" + puzzleSubmitOk: + title: Puzzle Publicado + desc: Parabéns! O teu puzzle foi publicado e agora pode ser jogado por outros + jogadores. Agora podes encontrar o teu puzzle na zona "Meus + puzzles". + puzzleCreateOffline: + title: Modo Offline + desc: Como estás no modo offline, tu não poderás salvar e/ou publicar o teu + puzzle. Mesmo assim queres continuar? + puzzlePlayRegularRecommendation: + title: Recomendação + desc: Eu recomendo <strong>fortemente</strong> a jogares no modo normal até ao + nível 12 antes de tentares o "puzzle DLC", caso contrário poderás + encontrar mecanicas às quais ainda não foste introduzido. Mesmo + assim queres continuar? + puzzleShare: + title: Pequeno código copiado + desc: O pequeno código do puzzle (<key>) foi copiado para a tua área de + transferências! Poderá ser introduzido no menu puzzle para teres + acesso ao puzzle. + puzzleReport: + title: Reportar Puzzle + options: + profane: Inapropriado + unsolvable: Não solucionável + trolling: Trolling + puzzleReportComplete: + title: Obrigado pelo teu feedback! + desc: O puzzle foi sinalizado. + puzzleReportError: + title: Falha ao reportar + desc: "Não foi possível proceder com o ter reporte:" + puzzleLoadShortKey: + title: Introduzir pequeno código + desc: Introduz um pequeno código para o puzzle carregar. + puzzleDelete: + title: Apagar Puzzle? + desc: Tens a certeza de que queres apagar '<title>'? Isto não pode ser anulado! ingame: keybindingsOverlay: moveMap: Mover @@ -235,6 +288,7 @@ ingame: clearSelection: Cancelar pipette: Pipeta switchLayers: Troca de camadas + clearBelts: Limpar tapetes rolantes buildingPlacement: cycleBuildingVariants: Pressionar <key> para obter variações. hotkeyLabel: "Atalho: <key>" @@ -308,30 +362,33 @@ ingame: e tapetes para atingir o objetivo mais rapidamente.<br><br>Dica: Pressiona <strong>SHIFT</strong> para colocar vários extratores, e usa <strong>R</strong> para os rodar." - 2_1_place_cutter: "Agora coloca um <strong>Cortador</strong> para cortares os circulos - em duas metades!<br><br> PS: O cortador corta sempre <strong>de cima para - baixo</strong> independentemente da sua orientação" + 2_1_place_cutter: "Agora coloca um <strong>Cortador</strong> para cortares os + circulos em duas metades!<br><br> PS: O cortador corta sempre + <strong>de cima para baixo</strong> independentemente da sua + orientação" 2_2_place_trash: O cortador pode <strong>encravar e parar</strong>!<br><br> Usa - um <strong>lixo</strong> para de livrares do atual (!) não - é necessário desperdício. - 2_3_more_cutters: "Bom trabalho! Agora coloca<strong>mais 2 cortadores</strong> para acelerades - este progresso lento!<br><br> PS: Usa os <strong>atalhos - 0-9</strong> para acederes às contruções mais rapidamente!" + um <strong>lixo</strong> para te livrares do atual (!) não é + necessário desperdício. + 2_3_more_cutters: "Bom trabalho! Agora coloca<strong>mais 2 cortadores</strong> + para acelerades este progresso lento!<br><br> PS: Usa os + <strong>atalhos 0-9</strong> para acederes às contruções mais + rapidamente!" 3_1_rectangles: "Agora vamos extrair alguns retângulos! <strong>Constrói 4 - extratores</strong> e conecta-os ao edifício central.<br><br> PS: - Pressiona <strong>SHIFT</strong> enquanto arrastas um tapete rolante - para ativares o planeador de tapetes!" - 21_1_place_quad_painter: Coloca o <strong>pintor quádruplo</strong> e arranja alguns - <strong>círculos</strong>, cores <strong>branca</strong> e - <strong>vermelha</strong>! + extratores</strong> e conecta-os ao edifício central.<br><br> + PS: Pressiona <strong>SHIFT</strong> enquanto arrastas um tapete + rolante para ativares o planeador de tapetes!" + 21_1_place_quad_painter: Coloca o <strong>pintor quádruplo</strong> e arranja + alguns <strong>círculos</strong>, cores <strong>branca</strong> + e <strong>vermelha</strong>! 21_2_switch_to_wires: Troca para a camada de fios pressionando - <strong>E</strong>!<br><br> A seguir <strong>conecta todas as quatro - entradas</strong> do pintor com fios! - 21_3_place_button: Fantástico! Agora coloca o <strong>Interruptor</strong> e conecta-o - com os fios! - 21_4_press_button: "Pressiona o interruptor para que ele <strong>emita um - sinal verdadeiro</strong>, isso irá ativar o pintor.<br><br> PS: Tu - não tens de conectar todas as entradas! Tenta conectar apenas duas." + <strong>E</strong>!<br><br> A seguir <strong>conecta todas as + quatro entradas</strong> do pintor com fios! + 21_3_place_button: Fantástico! Agora coloca o <strong>Interruptor</strong> e + conecta-o com os fios! + 21_4_press_button: "Pressiona o interruptor para que ele <strong>emita um sinal + verdadeiro</strong>, isso irá ativar o pintor.<br><br> PS: Tu + não tens de conectar todas as entradas! Tenta conectar apenas + duas." colors: red: Vermelho green: Verde @@ -364,9 +421,6 @@ ingame: buildings: title: 18 Novas contruções desc: Para uma fábrica totalmente automatizada! - savegames: - title: Savegames ∞ - desc: Tantos quanto o teu corção desejar! upgrades: title: ∞ Níveis de melhoria desc: Nesta versão demo apenas tens 5! @@ -382,6 +436,53 @@ ingame: support: title: Ajuda-me desc: Eu desenvolvo este jogo no meu tempo livre! + achievements: + title: Conquistas + desc: Tenta obtê-las todas! + puzzleEditorSettings: + zoneTitle: Zona + zoneWidth: Largura + zoneHeight: Altura + trimZone: Aparar + clearItems: Limpar Itens + share: Partilhar + report: Reportar + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Criador de Puzzle + instructions: + - 1. Coloca um <strong>Produtor Constante</strong> para fornecer + formas e cores ao jogador + - 2. Constrói uma ou mais formas que queiras que o jogador tenha de + contruir mais tarde e a tenha de entregar a um ou mais + <strong>Recetor de Objetivo</strong> + - 3. Assim que o Recetor de Objetivo receba uma forma durante um + certo espaço de tempo, ele <strong>guarda-a num objetivo</strong> + que o jogador terá de produzir mais tarde (Indicatdo pelo + <strong>distintivo verde</strong>). + - 4. Clcica no <strong>botão de bloqueio</strong> numa construção + para desátiva-lo. + - 5. Assim que clicares em analisar, o teu puzzle será validado e + poderás publicá-lo. + - 6. Após publicado, <strong>todas as construções serão + removidas</strong> excepto os Produtores e Recetores de Objetivo - + Esta é a parte em que é suposto o jogador tentar descobrir como + resolver o teu Puzzle :) + puzzleCompletion: + title: Puzzle Completo! + titleLike: "Clica no coração se gostaste do puzzle:" + titleRating: Quão difícil achaste que foi o puzzle? + titleRatingDesc: A tua avaliação ajudar-me-á a fazer melhores sugestões no futuro + continueBtn: Continua a Jogar + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Autor + shortKey: Pequeno Código + rating: Grau de dificuldade + averageDuration: Média de duração + completionRate: Taxa de conclusão shopUpgrades: belt: name: Tapetes, Distribuidores e Túneis @@ -477,11 +578,11 @@ buildings: default: name: Fio Elétrico description: Tranfere sinais, que podem ser itens, cores ou um sinal binário (1 - ou 0). Fios de cores diferestes não se conectam. + ou 0). Fios de cores diferentes não se conectam. second: name: Fio Elétrico description: Tranfere sinais, que podem ser itens, cores ou um sinal binário (1 - ou 0). Fios de cores diferestes não se conectam. + ou 0). Fios de cores diferentes não se conectam. balancer: default: name: Distribuidor @@ -598,6 +699,19 @@ buildings: name: Produtor de Itens description: Disponível apenas no modo sandbox, produz o sinal dado na camada de fios na camada normal. + constant_producer: + default: + name: Produtor Constante + description: Produz constantemente uma forma ou cor específica. + goal_acceptor: + default: + name: Recetor de Objetivo + description: Entrega formas ao recetor de objetivo para defini-las como um + objetivo. + block: + default: + name: Bloqueador + description: Permite-te bloquear uma quadrícula. storyRewards: reward_cutter_and_trash: title: Corte de formas @@ -630,8 +744,8 @@ storyRewards: esquerda! reward_splitter: title: Divisor - desc: Desbloqueaste o <strong>dvisor</strong> uma variante do - <strong>distribuidor</strong> - Aceita uma entradae divide-a em + desc: Desbloqueaste o <strong>divisor</strong> uma variante do + <strong>distribuidor</strong> - Aceita uma entrada e divide-a em duas! reward_tunnel: title: Túnel @@ -699,9 +813,9 @@ storyRewards: desc: Parabéns! Já agora, está planeado mais conteúdo para o jogo completo! reward_balancer: title: Distribuidor - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + desc: O <strong>Distribuidor</strong> foi desbloqueado - Pode ser usado para + construir fábricas maiores ao <strong>dividir e misturar + itens</strong> para vários tapetes! reward_merger: title: Misturador (compacto) desc: Desbloqueaste um <strong>misturador</strong>, uma variante do @@ -731,15 +845,15 @@ storyRewards: binário</strong> (1 ou 0). reward_logic_gates: title: Portões Lógicos - desc: Desbloqueaste os <strong>portões lógicos</strong>! N tens de te excitar + desc: Desbloqueaste os <strong>portões lógicos</strong>! Não tens de te excitar com isto, mas é realmente super fixe!<br><br> Com estes portões agora podes realizar operações AND, OR, XOR and NOT.<br><br> Como um - bónus anteriormente já de dei um <strong>transístor</strong>! + bónus anteriormente já te dei um <strong>transístor</strong>! reward_virtual_processing: title: Processamento Virtual desc: Acadei de te dar um monte de novas construções, que te vão permitir <strong>simular o processamento de formas</strong>!<br><br> Agora - podes simular um cortador,um rodador, um empilhador e muito mais na + podes simular um cortador, um rodador, um empilhador e muito mais na camada de fios! Com isto, agora tens três opções para continuares o jogo:<br><br> - Construir uma <strong>máquina automática</strong> para criar qualquer forma possível pedida pelo Edifício Central @@ -753,14 +867,14 @@ storyRewards: mecânicas!<br><br> Para o inicio eu dei-te o <strong>Pintor Quádruplo</strong> - Conecta as entradas que queres pintar na camada de fios!<br><br> Para trocares para a camada de fios, pressiona a - tecla <strong>E</strong>. <br><br> PS: <strong>Ativa as dicas</strong> nas - definições para ativares o tutorial de fios!" + tecla <strong>E</strong>. <br><br> PS: <strong>Ativa as + dicas</strong> nas definições para ativares o tutorial de fios!" reward_filter: title: Filtro de Itens desc: Desbloquaste o <strong>Filtro de Itens</strong>! Vai mandar itens ou para o topo ou para a saída da esquerda dependendo depending se são iguais ao sinal da camada de fios ou não.<br><br> Também podes - passar um sinal binário (1 ou 0) para ativa-lo ou desativa-lo + passar um sinal binário (1 ou 0) para ativá-lo ou desativá-lo totalmente. reward_demo_end: title: Fim da Demo @@ -895,7 +1009,7 @@ settings: lembra-te de experimentares! disableTileGrid: title: Desativar Grelha - description: Desativar a grelha pode ajudar com o desempenho. Isto também fazz o + description: Desativar a grelha pode ajudar com o desempenho. Isto também faz o jogo parecer mais limpo! clearCursorOnDeleteWhilePlacing: title: Limpar Cursor com Clique Direito @@ -905,12 +1019,12 @@ settings: direito do rato enquanto colocas um edifício. lowQualityTextures: title: Texturas de baixa qualidade (Feio) - description: sa texturas de baixa qualidade para melhorar o desempenho. sto vai - tornar o jogo parecer muito feio! + description: Usa texturas de baixa qualidade para melhorar o desempenho. Isto + vai tornar o jogo parecer muito feio! displayChunkBorders: title: Mostrar bordas de limites (chunk borders) description: O jogo está dividido em partes de 16x16 quadrados, se esta - dedinição estiver ativada as bordas de cada limitece são + definição estiver ativada as bordas de cada limite são mostradas. pickMinerOnPatch: title: Selecionar extrator num quadrado de recurso @@ -927,14 +1041,19 @@ settings: description: Permite-te mover o mapa movento o rato nos cantos do ecrâ. A velociade depende da definição de velocidade de movimentação. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Aproximar no cursor + description: Se ativado o zoom será na direção da posição do teu rato, de outra + forma será para o centro do ecrã. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Tamanho de Recursos no Mapa + description: Controla o tamanho das formas na visão geral do mapa (aplicando + zoom out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Atalhos hint: "Dica: Utiliza o CTRL, o SHIFT e o ALT! Eles permitem diferentes opções de @@ -1008,6 +1127,15 @@ keybindings: comparator: Comparador item_producer: Produtor de Itens (Sandbox) copyWireValue: "Fios: Copia o valor debaixo do cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Produtor Constante + goal_acceptor: Recetor de Objetivo + block: Bloqueador + massSelectClear: Limpar tapetes rolante + showShapeTooltip: Show shape output tooltip about: title: Sobre o Jogo body: >- @@ -1039,7 +1167,8 @@ tips: - Se empilhar não funciona, tenta trocar as entradas. - Podes alternar a direção do planeador de tapete rolante ao pressionar <b>R</b>. - - Ao pressionares <b>CTRL</b> podes arrastar tapetes rolantes sem auto-orientação. + - Ao pressionares <b>CTRL</b> podes arrastar tapetes rolantes sem + auto-orientação. - Os rácios continuam os mesmos, desde que todos os upgrades estejam no mesmo Nível. - Execução em série é mais eficiente que em paralelo. @@ -1068,12 +1197,12 @@ tips: - Usa balanceadores para maximizar a tua eficiência. - Organização é importante. Tenta não cruzar demasiados tapetes. - Planeia antecipadamente, ou vai ser um grande caos! - - Não removas as tuas fábricas antigas! Vais precisar delas para desbloqueares - upgrades. + - Não removas as tuas fábricas antigas! Vais precisar delas para + desbloqueares upgrades. - Tenta superar o nível 20 sozinho sem procurar ajuda! - Não complicas as coisas, tenta continuar simples e irás muito longe. - - Talvez precises de reutilizar fábricas, mais tarde no jogo. Planeia as tuas - fábricas para serem reutilizáveis. + - Talvez precises de reutilizar fábricas, mais tarde no jogo. Planeia as + tuas fábricas para serem reutilizáveis. - Às vezes, podes encontrar uma forma necessária no mapa sem criar-la com empilhadoras. - Moinhos de vento e cataventos completos nunca aparecem naturalmente. @@ -1090,8 +1219,8 @@ tips: - Junta todas as cores primárias para fazeres branco! - Tu tens um mapa infinito, não limites a tua fábrica, expande! - Tenta também Factorio! É o meu jogo favorito. - - O cortador quádruplo corta no sentido dos ponteiros do relógio começando no canto - superior direito! + - O cortador quádruplo corta no sentido dos ponteiros do relógio começando + no canto superior direito! - Podes fazer download dos teus savegames no menu principal! - Este jogo tem muitos atalhos de teclado úteis! Não te esqueças de verificar a página de configurações. @@ -1102,3 +1231,90 @@ tips: - Pressiona F4 para mostrar os teus FPS e Tick Rate. - Pressiona F4 duas vezes para mostrar a tile do teu rato e câmara. - Podes clicar numa forma afixada no lado direito para desafixa-la. +puzzleMenu: + play: Jogar + edit: Editar + title: Modo Puzzle + createPuzzle: Criar Puzzle + loadPuzzle: Carregar + reviewPuzzle: Analisar e Publicar + validatingPuzzle: A validar Puzzle + submittingPuzzle: A submeter Puzzle + noPuzzles: Não há atualmente puzzles nesta secção. + categories: + levels: Nivéis + new: Novo + top-rated: Melhor Avaliado + mine: Meus Puzzles + easy: Fácil + hard: Difícil + completed: Completo + medium: Médio + official: Oficial + trending: Tendências de Hoje + trending-weekly: Tendências da Semana + categories: Categorias + difficulties: Por Dificuldade + account: Os meus Puzzles + search: Procurar + validation: + title: Puzzle Inválido + noProducers: Por favor coloca um Produtor Constante! + noGoalAcceptors: Por favor coloca um Recetor de Objetivo! + goalAcceptorNoItem: Um ou mais Recetores de Objetivo ainda não tem itens + atrbuídos. Entrega uma forma nele para definires um objetivo. + goalAcceptorRateNotMet: Um ou mais Recetores de Objetivo não está a receber + itens suficientes. Assegura-te de que tens o indicador verde em + todos os Recetores. + buildingOutOfBounds: Uma ou mais formas estão fora da área de construção. Ou + aumentas a área ou removes esses itens. + autoComplete: O teu Puzzle completa-se sozinho! Por favor assegura-te de que os + teus Produtores Constantes não estão automaticamente direcionados + para os Recetores de Objetivo. + difficulties: + easy: Fácil + medium: Médio + hard: Difícil + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Estás a realizar as tuas ações demasiado rápido. Aguarda um pouco. + invalid-api-key: Falha ao cominucar com o backend, por favor tenta + atualizar/resetar o Jogo (Chave Api inválida). + unauthorized: Falha ao cominucar com o backend, or favor tenta atualizar/resetar + o Jogo (Não autorizado). + bad-token: Falha ao cominucar com o backend, por favor tenta atualizar/resetar o + Jogo (Mau Token). + bad-id: Identificador de Puzzle inválido. + not-found: O Puzzle pedido não foi encontrado. + bad-category: A categoria pedida não foi encontrada. + bad-short-key: O pequeno código inserido não é válido. + profane-title: O título do teu Puzzle contém palavras impróprias. + bad-title-too-many-spaces: O título do teu Puzzle é demasiado pequeno. + bad-shape-key-in-emitter: Um Produtor Constante tem um item inválido. + bad-shape-key-in-goal: Um Recetor de Objetivo tem um item inválido. + no-emitters: O teu Puzzle não contém nenhum Produtor Constante. + no-goals: O teu Puzzle não contém nenhum Recetor de Objetivo. + short-key-already-taken: Este pequeno código já foi utilizado, por favor tenta outro. + can-not-report-your-own-puzzle: Não podes reportar o teu próprio puzzle. + bad-payload: O pedido contém informção inválida. + bad-building-placement: O teu Puzzle contém construções posicionadas de forma inválida. + timeout: O tempo do pedido esgotou. + too-many-likes-already: O puzzle já tem imensos gostos. Se ainda o quiseres + remover, por favor contacta support@shapez.io! + no-permission: Não tens permissão para realizar esta ação. diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index 1dd87f08..f58bf28c 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -4,49 +4,23 @@ steamPage: într-o hartă infinită. discordLinkShort: Official Discord intro: >- - Shapez.io is a relaxed game in which you have to build factories for the - automated production of geometric shapes. + Shapez.io un joc relaxant in care trebuie sa construiești fabrici pentru a automatiza producția de figuri geometrice - As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. + Pe măsură ce nivelul crește figurile devin din ce în ce mai complexe și vei fi nevoit să te extinzi pe harta infinită. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! + Daca asta nu era suficient, vei fi nevoit sa produci exponențial mai multe figuri pentru a satisface cererea - singurul lucru care te poate ajuta este extinderea ! - While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! - - Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Avantaje Standalone - advantages: - - <b>12 Noi Nivele</b> pentru un total de 26 niveluri - - <b>18 Noi Clădiri</b> pentru o fabrică complet automatizată! - - <b>20 de Grade de Upgrade</b> pentru multe ore de distracție! - - <b>Actualizare cu Fire</b> pentru o dimensiune cu totul nouă! - - <b>Temă întunecată</b>! - - Unlimited Savegames - - Marcaje nelimitate! - - Susține-mă! ❤️ - title_future: Conținut Planificat - planned: - - Blueprint Library (Standalone Exclusive) - - Realizări Steam - - Mod Puzzle - - Hartă - - Mod-uri - - Mod Sandbox - - ... și multe altele! - title_open_source: Acest joc are sursă liberă! - title_links: Link-uri - links: - discord: Discord Oficial - roadmap: Roadmap - subreddit: Subreddit - source_code: Cod sursă (GitHub) - translate: Ajută la traducere - text_open_source: >- - Oricine poate să contribuie, Sunt implicat activ în comunitate și - încerc să revizuiesc toate sugestiile și să iau păreri și răspunsuri în considerație - oriunde-i posibil. - - Fii sigur să-mi vezi panoul Trello pentru roadmap-ul întreg! + Dacă la început procesezi doar forme, vei fi nevoit sa le colorezi mai târziu - pentru asta vei avea nevoie să extragi și să amesteci culori ! + + Cumpărarea jocului pe Steam îți va asigura acesul la versiunea finală, dar te poți juca o versiune demonstrativă pe shapez.io mai întâi și să te decizi mai târziu ! + what_others_say: Ce spun alții despre shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Se Încarcă error: Eroare @@ -78,25 +52,33 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logare demoBanners: title: Versiunea Demo - intro: Ia versiunea Standalone pentru a debloca toate funcțiile! + intro: Instalează versiunea Standalone pentru a debloca toate funcțiile! mainMenu: play: Joacă - changelog: Changelog - importSavegame: Import + changelog: Jurnalul schimbărilor + importSavegame: Importă openSourceHint: Acest joc este open source! discordLink: Serverul oficial de Discord helpTranslate: Ajută să traducem! - browserWarning: Scuze dar, jocul este știut să ruleze încet pe browser-ul tău! - Ia versiunea standalone sau descarcă chrome pentru experiența completă. + browserWarning: Scuze, dar jocul este cunoscut să ruleze încet pe browser-ul tău! + Instalează versiunea standalone sau descarcă chrome pentru experiența + completă. savegameLevel: Nivelul <x> savegameLevelUnknown: Nivel necunoscut continue: Continuă newGame: Joc nou madeBy: Făcut de <author-link> subreddit: Reddit - savegameUnnamed: Unnamed + savegameUnnamed: Fară nume + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Îți place să compresezi și să optimizezi fabricile ? Ia acum Puzzle + DLC pe Steam pentru mai multă distracție ! + puzzleDlcWishlist: Adaugă în Wishlist acum! + puzzleDlcViewNow: Vezi DlC dialogs: buttons: ok: OK @@ -105,31 +87,33 @@ dialogs: later: Mai târziu restart: Restartează reset: Resetează - getStandalone: Ia Standalone-ul + getStandalone: Instalează Standalone-ul deleteGame: Știu ce fac viewUpdate: Vezi Update-ul showUpgrades: Vezi Upgrade-urile showKeybindings: Arată tastele configurate + retry: Reîncearcă + continue: Continue + playOffline: Joacă Offline importSavegameError: - title: Eroare la Import - text: "Încercarea de import a eșuat:" + title: Eroare la Importare + text: "Încercarea de importare a eșuat:" importSavegameSuccess: - title: Savegame importat - text: Savegame-ul tău a fost importat cu succes. + title: Salvarea importată + text: Salvarea ta a fost importată cu succes. gameLoadFailure: - title: Jocul este stricat - text: "Încercarea de încărcat savegame-ul a eșuat:" + title: Jocul este corupt + text: "Încercarea de a încărca salvarea a eșuat:" confirmSavegameDelete: title: Confirmă ștergerea - text: Are you sure you want to delete the following game?<br><br> - '<savegameName>' at level <savegameLevel><br><br> This can not be - undone! + text: Ești sigur că vrei să ștergi următoarea salvare?<br><br> '<savegameName>' la + nivelul <savegameLevel><br><br> Acest lucru nu poate fi anulat! savegameDeletionError: title: Eroare la ștergere - text: "Nu a reușit să se ștearga savegame-ul:" + text: "Nu a fost reușită ștearga salvarii:" restartRequired: - title: Restartare necesară - text: Trebuie să restartezi jocul pentru a aplica setările. + title: Repornire necesară + text: Trebuie să repornești jocul pentru a aplica setările. editKeybinding: title: Schimbă Tastele configurate desc: Apasă tasta sau butonul mouse-ului pe care vrei să îl atribui, sau escape @@ -142,13 +126,14 @@ dialogs: title: Tastele configurate se resetează desc: Tastele configurate au fost resetate la valorile lor obișnuite! featureRestriction: - title: Demo Version + title: Versiune Demo desc: Ai încercat să accesezi o funcție (<feature>) care nu este disponibilă în - demo. Consideră să iei standalone-ul pentru experiența completă! + demo. Consideră să instalezi standalone-ul pentru experiența + completă! oneSavegameLimit: - title: Savegame-uri limitate - desc: Poți avea doar un savegame în același timp în versiunea demo. Te rugăm - șterge-o pe cea existentă sau ia standalone-ul! + title: Salvări limitate + desc: Poți avea doar o salvare în același timp în versiunea demo. Te rugăm + șterge-o pe cea existentă sau instalează standalone-ul! updateSummary: title: Update nou! desc: "Aici sunt schimbările de când ai jucat ultima oară:" @@ -174,19 +159,19 @@ dialogs: class='keybinding'>CTRL</code> + Drag: Selectează o zonă pentreu a copia / delete.<br> <code class='keybinding'>SHIFT</code>: Ține apăsat pentru a plasa mai multe dintr-o clădire.<br> <code - class='keybinding'>ALT</code>: Inversează orientația a benzilor + class='keybinding'>ALT</code>: Inversează orientarea benzilor rulante.<br>" createMarker: - title: Nou waypoint - desc: Give it a meaningful name, you can also include a <strong>short - key</strong> of a shape (Which you can generate <link>here</link>) - titleEdit: Edit Marker + title: Waypoint nou + desc: Dă-i un nume sugestiv, poți include și o <strong> scurtă + cheie </strong> a unei figuri (Pe care o poți genera <link>aici</link>) + titleEdit: Editează Marker markerDemoLimit: desc: Poți crea decât două waypoint-uri personalizate în demo. Ia standalone-ul pentru Waypoint-uri nelimitate! massCutConfirm: - title: Confirmă tăierea - desc: Tu tai multe construcții (<count> pentru a fi precis)! Sunteți sigur că + title: Confirmă decuparea + desc: Tu decupezi mai multe construcții (<count> pentru a fi precis)! Sunteți sigur că vreți să faceți asta? exportScreenshotWarning: title: Exportează captură de ecran @@ -194,27 +179,91 @@ dialogs: rețineți că asta poate fi destul de lent pentru o bază mare și poate chiar să blocheze jocul! massCutInsufficientConfirm: - title: Confirm cut - desc: You can not afford to paste this area! Are you sure you want to cut it? + title: Confirmă decuparea + desc: Nu vă permiteți sa lipiți această zona ! Suntți sigur că doriți să o decupați ? editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you - can generate <link>here</link>) + title: Setați semnal + descItems: "Selectați un item predefinit :" + descShortKey: ... sau introduceți <strong>cheia scurtă</strong> a unei forme (Pe care o + puteți genera <link>aici</link>) renameSavegame: - title: Rename Savegame - desc: You can rename your savegame here. + title: Redenumiți salvarea + desc: Îți poți redenumi salvarea aici tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Tutorial Disponibil + desc: Există un tutorial video pentru acest nivel! Ați dori să + îl vizionați? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Tutorial Disponibil + desc: Există un tutorial video pentru acest nivel, dar este disponibil + doar în engleză. Ați dori să în vizionați? + editConstantProducer: + title: Setează Item + puzzleLoadFailed: + title: Încărcarea puzzleurilor a eșuat + desc: "Din păcate puzzelurile nu au putut fi încărcate:" + submitPuzzle: + title: Trimite Puzzle + descName: "Dă puzzle-ului tău un nume:" + descIcon: "Te rog introdu o cheie scurtă, care va fi folosită ca iconiță + pentru puzzleul tău (Le poți genera <link>aici</link>, sau poți alege + una din cele generate aleator de mai jos):" + placeholderName: Titlu Puzzle + puzzleResizeBadBuildings: + title: Redimenisonarea nu e posibilă + desc: Nu poți face zona asta mai mică, altfel unele clădiri vor fi + înafara zonei. + puzzleLoadError: + title: Puzzle Defect + desc: "Puzzle-ul nu a putut fi încărcat:" + offlineMode: + title: Mod Offline + desc: Nu am putut face conexiunea la servere, deci jocul trebuie să ruleze + în modul offine. Te rog verifică dacă ai o conexiune activă la internet. + puzzleDownloadError: + title: Eroare la descărcare + desc: "Descărcarea puzzle-ului a eșuat:" + puzzleSubmitError: + title: Eroare la trimitere + desc: "Trimiterea puzzle-ului a eșuat:" + puzzleSubmitOk: + title: Puzzle Publicat + desc: Felicitări! Puzzle-ul tău a fost publicat și poate fi jucat acum + de ceilalți. Îl poți găsi în secțiunea "Puzzle-urile mele". + puzzleCreateOffline: + title: Mod Offline + desc: Deoarece ești online nu poți salva/publica un + puzzle. Dorești să continui ? + puzzlePlayRegularRecommendation: + title: Recomandare + desc: Recomand <strong>cu tărie</strong> jucarea normală a jocului până la nivelul 12 + înainte de a încerca DLC-ul Puzzle, altfel e posibil să întâlnești mecanici + care nu au fost prezentate încă. Sigur dorești să continui ? + puzzleShare: + title: Cheie scurtă copiată + desc: Cheia scurtă a unui puzzle (<key>) a fost copiată în clipboard! Poate + fi introdusă in meniul puzzle pentru a accesa puzzle-ul respectiv. + puzzleReport: + title: Raportează Puzzle + options: + profane: Vulgar + unsolvable: Nu poate fi rezolvat + trolling: Trolaj + puzzleReportComplete: + title: Mulțumim pentru feedbackul dumneavoastră! + desc: Puzzle-ul a fost marcat. + puzzleReportError: + title: Eroare la raportare + desc: "Raportarea dumneavoastră nu a putut fi procesată:" + puzzleLoadShortKey: + title: Inserează cheie scurtă + desc: Inserează cheia scurtă a puzzleului pentru a îl încărca + puzzleDelete: + title: Șterge Puzzle? + desc: Ești sigur că vrei să ștergi '<title>'? Această modificare e permanentă! ingame: keybindingsOverlay: - moveMap: Move + moveMap: Mișcă-te selectBuildings: Selectează zona stopPlacement: Oprește plasarea rotateBuilding: Rotește construcția @@ -231,16 +280,17 @@ ingame: cutSelection: Taie copySelection: Copiază clearSelection: Golește Secțiunea - pipette: Pipette - switchLayers: Switch layers + pipette: Pipetă + switchLayers: Schimbă straturi + clearBelts: Golește benzile buildingPlacement: - cycleBuildingVariants: Apasă <key> pentru a cicla variantele. + cycleBuildingVariants: Apasă <key> pentru a parcurge variantele disponibile. hotkeyLabel: "Tasta: <key>" infoTexts: speed: Viteză range: Distanță storage: Capacitate - oneItemPerSecond: 1 obiect / second + oneItemPerSecond: 1 obiect / secundă itemsPerSecond: <x> obiecte / s itemsPerSecondDouble: (x2) tiles: <x> Câmpuri @@ -252,11 +302,11 @@ ingame: notifications: newUpgrade: Un upgrade nou este disponibil! gameSaved: Jocul tău a fost salvat. - freeplayLevelComplete: Level <level> has been completed! + freeplayLevelComplete: Nivelul <level> a fost completat! shop: title: Upgrade-uri buttonUnlock: Upgrade - tier: Tier <x> + tier: Nivel <x> maximumLevel: NIVELUL MAXIM (Speed x<currentMult>) statistics: title: Statistici @@ -282,7 +332,7 @@ ingame: beltsPlaced: Benzi tutorialHints: title: Ai nevoie de ajutor? - showHint: Arată o idee + showHint: Arată indiciu hideHint: Închide blueprintPlacer: cost: Preț @@ -302,35 +352,35 @@ ingame: 1_2_conveyor: "Conectează extractorul cu o<strong>bandă rulantă</strong> până la centru!<br><br>Sfat: <strong>Click și trage</strong> banda cu mouse-ul tău!" - 1_3_expand: "Acesta <strong>NU</strong> este un joc idle! Construiește mai multe + 1_3_expand: "Acesta <strong>NU</strong> este un joc de tip idle! Construiește mai multe extractoare și benzi pentru a finaliza scopul mai rapid.<br><br>Sfat: Ține apăsat <strong>SHIFT</strong> pentru a - plasa mai multe extractoare, și flosește <strong>R</strong> + plasa mai multe extractoare, și folosește <strong>R</strong> pentru a le roti." - 2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two - halves!<br><br> PS: The cutter always cuts from <strong>top to - bottom</strong> regardless of its orientation." - 2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a - <strong>trash</strong> to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed - up this slow process!<br><br> PS: Use the <strong>0-9 - hotkeys</strong> to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4 - extractors</strong> and connect them to the hub.<br><br> PS: - Hold <strong>SHIFT</strong> while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some - <strong>circles</strong>, <strong>white</strong> and - <strong>red</strong> color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - <strong>E</strong>!<br><br> Then <strong>connect all four - inputs</strong> of the painter with cables! - 21_3_place_button: Awesome! Now place a <strong>Switch</strong> and connect it - with wires! - 21_4_press_button: "Press the switch to make it <strong>emit a truthy - signal</strong> and thus activate the painter.<br><br> PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "Acum plasează un <strong>tăietor</strong> pentru a tăia cercurile în două + jumatăți!<br><br> PS: Tăietorul mereu taie de <strong>sus în + jos</strong> indiferent de orientare." + 2_2_place_trash: Tăietoarul poate fi <strong>înfundat și blocat</strong>!<br><br> Folosește + <strong>coșul de gunoi</strong> pentru a scăpa de bucățile + inutile. + 2_3_more_cutters: "Bună treabă! Acum pune <strong>încă 2 tăietoare</strong> pentru a + mări viteza acestui proces încet!<br><br> PS: Folosește <strong> tastele rapide + 0-9</strong> pentru a selecta construcțiile mai rapid!" + 3_1_rectangles: "Acum să extragem niște pătrate! <strong>Construiește 4 + extractoare</strong> și conectează-le la hub.<br><br> PS: + Ține apăsat <strong>SHIFT</strong> în timp ce tragi o banda pentru a activa + planificatorul de benzi!" + 21_1_place_quad_painter: Plasează <strong>vopsitorul cvadruplu</strong> și fă rost de + <strong>cercuri</strong> de culori <strong>albe</strong> și + <strong>roșii</strong>! + 21_2_switch_to_wires: Comută la stratul cabluri apăsând + <strong>E</strong>!<br><br> Apoi <strong>conectează toate cele 4 intrări + </strong>ale vopsitorului cu cabluri! + 21_3_place_button: Grozav! Acum plasează un <strong>Întrerupător</strong> și + conectează-l cu cabluri! + 21_4_press_button: "Apasă pe intrerupător pentru a <strong>emite semnalul + ADEVĂRAT</strong> și pentru a activa vopsitorul.<br><br> PS: Nu + e necesar să conectezi toate cele 4 intrări! Încearcă să conectezi doar 2." colors: red: Roșu green: Verde @@ -340,47 +390,87 @@ ingame: cyan: Cyan white: Alb uncolored: Necolorat - black: Black + black: Negru shapeViewer: title: Start empty: Gol - copyKey: Copy Key + copyKey: Copiază Cheie connectedMiners: one_miner: 1 Miner n_miners: <amount> Miners - limited_items: Limited to <max_throughput> + limited_items: Limitat la <max_throughput> watermark: - title: Demo version - desc: Click here to see the Steam version advantages! - get_on_steam: Get on steam + title: Versiune Demo + desc: Apasă aici pentru a vedea avantajele versiunii Steam! + get_on_steam: Ia pe Steam standaloneAdvantages: - title: Get the full version! - no_thanks: No, thanks! + title: Ia versiunea completă! + no_thanks: Nu, mersi! points: levels: - title: 12 New Levels - desc: For a total of 26 levels! + title: 12 Nivele Noi + desc: Pentru un total de 26 de nivele! buildings: - title: 18 New Buildings - desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! + title: 18 construcții noi + desc: Automatizează-ti complet fabrica! upgrades: - title: ∞ Upgrade Tiers - desc: This demo version has only 5! + title: Nivele de Upgrade Infinite + desc: Acest demo are doar 5! markers: - title: ∞ Markers - desc: Never get lost in your factory! + title: Marcatoare infinite + desc: Nu te rătăci niciodată în fabrică! wires: - title: Wires - desc: An entirely new dimension! + title: Cabluri + desc: O dimeniune complet nouă! darkmode: - title: Dark Mode - desc: Stop hurting your eyes! + title: Mod întunecat + desc: Nu mai lăsa ochii să te doară! support: - title: Support me - desc: I develop it in my spare time! + title: Ajută-mă + desc: Dezvolt jocuri în timpul meu liber! + achievements: + title: Realizări + desc: Vânează-le pe toate! + puzzleEditorSettings: + zoneTitle: Zonă + zoneWidth: Lățime + zoneHeight: Înăltime + trimZone: Taie + clearItems: Golește iteme + share: Distribuie + report: Raportează + clearBuildings: Șterge construcții + resetPuzzle: Resetează Puzzle + puzzleEditorControls: + title: Creator de puzzle + instructions: + - 1. Plasează <strong>Producătoare Constante</strong> care să ofere + forme și culori jucătorului. + - 2. Produ una sau mai multe forme pe care jucătorul să le producă + și să le livreze la <strong>Acceptorul de obiective</strong> + - 3. Odată ce acceptorul de obiective primește o formă pentru un timp + suficient, acesta <strong>îl salvează ca obiectiv</strong> pe care jucătorul + trebuie să îl producă (Indicat de <strong>insigna verde</strong>). + - 4. Apasă pe <strong>butonul blochează</strong> pe o clădire pentru a o dezactiva + - 5. Odată ce ai apăsat revizurie, puzzle-ul tău va fi validat și îl vei putea + publica. + - 6. Odată lansat, <strong>toate constucțiile vor fi distruse</strong> + cu excepția producătoarelor constante și a acceptoarelorl de obiective + - Asta face parte din ceea ce trebuie să își dea seama jucătorul, până la urmă :) + puzzleCompletion: + title: Puzzle Completat! + titleLike: "Apasă pe inimă dacă ți-a plăcut :" + titleRating: Cât de dificil ți s-a părut? + titleRatingDesc: Recenzia ta mă va ajuta să îți fac recomandări mai bune pe viitor ! + continueBtn: Continua joaca + menuBtn: Meniu + nextPuzzle: Puzzle-ul Următor + puzzleMetadata: + author: Autor + shortKey: Cheie scurtă + rating: Scor dificultate + averageDuration: Durată medie + completionRate: Rată completare shopUpgrades: belt: name: Benzi, Distribuitor & Tunele @@ -412,7 +502,7 @@ buildings: name: Tunel description: Permite transportarea resurselor pe sub construcții și benzi. tier2: - name: Tunnel Tier II + name: Tunnel Nivel II description: Permite transportarea resurselor pe sub construcții și benzi. cutter: default: @@ -421,26 +511,26 @@ buildings: folosești doar o parte, ține minte să o distrugi pe cealaltă sau producția se va opri!</strong> quad: - name: Tăietor (Quad) + name: Tăietor (Cvadruplu) description: Taie formele în patru părți. <strong>Dacă folosești doar o parte, ține minte să o distrugi pe cealaltă sau producția se va opri!</strong> rotater: default: - name: Rotate + name: Rotitor description: Rotește formele în sensul acelor de ceasornic la 90 de grade. ccw: - name: Rotate (CCW) - description: Rotește formele în inversul sensului acelor de ceasornic la 90 de + name: Rotitor (CCW) + description: Rotește formele în sensul invers acelor de ceasornic la 90 de grade. rotate180: - name: Rotate (180) - description: Rotates shapes by 180 degrees. + name: Rotitor (180) + description: Rotește formele cu 180 de grade. stacker: default: name: Mașină de presat description: Unește ambele obiecte. Dacă ele nu poti fi unite, obiectul drept va - fi pus peste obiectul stâng. + fi pus deasupra obiectul stâng. mixer: default: name: Mixer de culori @@ -455,10 +545,10 @@ buildings: description: Colorează formele din input-urile din stânga folosind culoarea din input-ul de sus. quad: - name: Mașină de pictat (Quad) - description: Allows you to color each quadrant of the shape individually. Only - slots with a <strong>truthy signal</strong> on the wires layer - will be painted! + name: Mașină de pictat (Cvadruplu) + description: Îți permite să colorezi fiecare sfert de figură individual. Doar + sloturile cu <strong>semnalul ADEVARAT</strong> pe stratul de cabluri + va fi colorat! mirrored: name: Mașină de pictat description: Colorează întreaga formă din input-ul stâng folosind culoarea din @@ -469,151 +559,161 @@ buildings: description: Acceptă input-uri din toate părțile și le distruge. Pentru totdeauna. hub: - deliver: Deliver + deliver: Livrează toUnlock: pentru a debloca levelShortcut: LVL - endOfDemo: End of Demo + endOfDemo: Sfărșitul Demo-ului wire: default: - name: Energy Wire - description: Allows you to transport energy. + name: Cabluri de energie + description: Îți permite să transporți energie. second: - name: Wire - description: Transfers signals, which can be items, colors or booleans (1 / 0). - Different colored wires do not connect. + name: Cabluri + description: Transportă semnale, care pot fi culori sau valori binare (1/0) + Cablurile colorate diferit nu se conectează balancer: default: - name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + name: Balansor + description: Multifunctional - Distribuie toate input-urile catre toate output-urile. merger: name: Merger (compact) - description: Merges two conveyor belts into one. + description: Unește două benzi la una. merger-inverse: name: Merger (compact) - description: Merges two conveyor belts into one. + description: Unește două benzi la una. splitter: name: Splitter (compact) - description: Splits one conveyor belt into two. + description: Împarte o bandă în două. splitter-inverse: name: Splitter (compact) - description: Splits one conveyor belt into two. + description: Împarte o bandă în două. storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: Depozit + description: Depozitează iteleme în exces, până la o anumită capacitate. Prioritizează + output-ul stâng și poate fi folosit ca o poartă de revărsare. wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: Intersecție cabluri + description: Permite intersectarea a doua cabluri fără a le conecta constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: Semnal constant + description: Emite un semnal constant, ce poate fi o formă, culoare sau o valoare + binară (1 / 0). lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: Întrerupător + description: Poate fi pus să emită un semnal binar (1/0) pe stratul cabluri, + putând fi folosit de exemplu cu un filtru de iteme. logic_gate: default: - name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + name: Poartă AND + description: Emite valoarea binară "1" daca ambele input-uri sunt adevărate. (adevarat înseamna formă, + culoare sau valoarea binară "1") not: - name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + name: Poartă NOT + description: Emite valoarea binară "1" daca input-ul nu este adevărat. (adevarat înseamna formă, + culoare sau valoarea binară "1") xor: - name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + name: Poartă XOR + description: Emite valoarea binară "1" daca unul din input-uri e adevărat, dar nu ambele. (adevarat înseamna formă, + culoare sau valoarea binară "1") or: - name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + name: Poartă OR + description: Emite valoarea binară "1" daca unul sau mai multe input-uri este adevărat. (adevarat înseamna formă, + culoare sau valoarea binară "1") transistor: default: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: Tranzistor + description: Transmite valoarea de la input-ul de jos daca input-ul din lateral este adevarat (adevarat înseamna formă, + culoare sau valoarea binară "1"). mirrored: name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + description: Transmite valoarea de la input-ul de jos daca input-ul din lateral este adevarat (adevarat înseamna formă, + culoare sau valoarea binară "1"). filter: default: - name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + name: Filtru + description: Conectează un semnal pentru a direcționa toate itemele corespunzătoare + în sus, iar restul către dreapta. Poate fi controlat cu semnale binare. display: default: name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + description: Conectează un semnal pentru a îl asișa pe display - Poate fi o formă, + o culoare sau valoare binară. reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: Cititor de bandă + description: Permite măsurarea debitului mediu al benzii. Transmite ultimul + item citit pe statul cabluri (odată deblocat). analyzer: default: - name: Shape Analyzer + name: Analizator de formă description: Analyzes the top right quadrant of the lowest layer of the shape and returns its shape and color. comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: Comparator + description: Returnează valoarea binară "1" dacă semnalele sunt egale. Poate + compara forme, coloari, valori binare virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: Tăietor virtual + description: Taie virtual forma în două rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: Rotitor virtual + description: Rotește virtual forma în ambele direcții. unstacker: - name: Virtual Unstacker - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + name: Desfăcător virtual + description: Extrage virtual stratul de deasupra către output-ul din dreapta și cel + ce rămâne în stânga. stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: Stivuitor virtual + description: Stivuiește virtual forma din dreapta peste fomrma din stânga. painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: Vopsitor virtual + description: Vopsește virual forma din input-ul de jos cu cea din dreapta. item_producer: default: - name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + name: Producător de item + description: Disponsibil doar în modul sandbox, semnalul primit de pe + stratul cabluri pe stratul normal. + constant_producer: + default: + name: Producator de constantă + description: Produce constant o anumită formă/culoare + goal_acceptor: + default: + name: Acceptor de obiective + description: Livrează formele la acceptorul de obiective pentru a le seta ca obiectiv. + block: + default: + name: Bloc + description: Îți permite să blochezi o căsuță. storyRewards: reward_cutter_and_trash: title: Tăierea formelor - desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half - from top to bottom <strong>regardless of its - orientation</strong>!<br><br>Be sure to get rid of the waste, or - otherwise <strong>it will clog and stall</strong> - For this purpose - I have given you the <strong>trash</strong>, which destroys - everything you put into it! + desc: Tocmai ai deblocat <strong>tăietorul</strong>, care taie formele în jumătate + de sus in jos <strong>indiferent de orientare + </strong>!<br><br>Asigură-te că scapi de bucățile inutile, ori + altfel <strong>o să se înfunde și o să se oprească</strong> - Pentru asta + ți-am dat <strong>cosul de gunoi</strong> care distruge + tot ce pui în el! reward_rotater: title: Rotitul - desc: <strong>rotater-ul</strong> a fost deblocat! El rotește formele la 90 de + desc: <strong>Rotitorul</strong> a fost deblocat! El rotește formele la 90 de grade. reward_painter: title: Pictatul - desc: "The <strong>Mașina de pictat</strong> a fost deblocată - Extrage niște + desc: "The <strong>Vopsitorul</strong> a fost deblocată - Extrage niște culori (la fel cum faci și cu formele) și combină-le cu o formă în - mașina de pictat pentru a le colora!<br><br>PS: Dacă ești orb, acolo - este un <strong>mod pentru orbi</strong> în setări!" + mașina de pictat pentru a le colora!<br><br>PS: Dacă ești daltonist, există + un <strong>mod pentru daltoniști</strong> în setări!" reward_mixer: title: Amestecatul culorilor desc: <strong>Mixerul</strong> a fost deblocat - Combină două culori folosind - <strong>amestecul de aditivi</strong> cu această clădire! + <strong>amestecul de culori</strong> cu această clădire! reward_stacker: title: Mașina de presat desc: Acum poți combina forme cu <strong>mașina de presat</strong>! Ambele @@ -622,34 +722,34 @@ storyRewards: <strong>pus peste</strong> input-ul stâng! reward_splitter: title: Distribuitor/Combinator - desc: You have unlocked a <strong>splitter</strong> variant of the - <strong>balancer</strong> - It accepts one input and splits them - into two! + desc: Ai deblocat <strong>împărțitorul</strong> o variantă + <strong>a balansorului</strong> - Acceptă un input și în împarte + în două! reward_tunnel: title: Tunel - desc: <strong>Tunelul</strong> a fost deblocat - Acum poți deplasa obiecte prin + desc: <strong>Tunelul</strong> a fost deblocat - Acum poți deplasa obiecte pe sub benzi și construcții cu el! reward_rotater_ccw: - title: Rotarea CCW - desc: Ai deblocat o variantă a <strong>rotater-ului</strong> - El permite - rotația în sensul invers al acelor de ceasornic! Pentru a îț - construi, selectează rotater-ul și <strong>apasă 'T' pentru a cicla - printre variante</strong>! + title: Rotitul CCW + desc: Ai deblocat o variantă a <strong>rotitorului</strong> - El permite + rotația în sensul invers al acelor de ceasornic! Pentru a îl + construi, selectează rotitorul și <strong>apasă 'T' pentru a parcurge + variantele </strong>! reward_miner_chainable: - title: Chaining Extractor - desc: "You have unlocked the <strong>chained extractor</strong>! It can - <strong>forward its resources</strong> to other extractors so you - can more efficiently extract resources!<br><br> PS: The old - extractor has been replaced in your toolbar now!" + title: Extractor în lanț + desc: "Ai deblocat <strong>extractorul în lanț</strong>! El poate + <strong>transmite resursele</strong> către celelalte extractoare + încât minarea resurselor să fie mai eficientă<br><br> PS: Extractorul vechi + a fost înlocuit cu cel nou in bara de unelte!" reward_underground_belt_tier_2: - title: Tunnel Tier II + title: Tunel nivel II desc: Ai deblocat o variantă nouă a <strong>tunelului</strong> - El are <strong>distanță mai mare</strong>, iar tu poți de asemenea să alternezi acele tunele acum! reward_cutter_quad: title: Tăiatul quadriplu desc: Ai deblocat o variantă a <strong>tăietorului</strong> - El îți permite să - tai forme în <strong>patru părți</strong> în loc de doar două! + tai forme în <strong>patru părți</strong> în loc de două! reward_painter_double: title: Pictatul dublu desc: Ai deblocat o variantă a <strong>Mașini de pictat</strong> - Funcționează @@ -657,25 +757,25 @@ storyRewards: forme odată</strong> consumând doar o culoare în loc de două! reward_storage: title: Depozitul - desc: You have unlocked the <strong>storage</strong> building - It allows you to - store items up to a given capacity!<br><br> It priorities the left - output, so you can also use it as an <strong>overflow gate</strong>! + desc: Ai deblocat <strong>depozitul</strong> - Îți permite să stochezi + iteme până la o anumită capacitate!<br><br> El prioritizează + output-ul stâng, deci îl poți folosi ca o <strong>poarta de revărsare</strong>! reward_freeplay: title: Jocul liber - desc: You did it! You unlocked the <strong>free-play mode</strong>! This means - that shapes are now <strong>randomly</strong> generated!<br><br> - Since the hub will require a <strong>throughput</strong> from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!<br><br> The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + desc: Ai reușit!Ai deblocat modul <strong>liber</strong>! Asta înseamnă + că formele sunt acum generate <strong>aleator</strong> !<br><br> + Deoarece hub-ul va necesita un <strong>debit</strong> mare de acum, + recomand să construiești o mașinărie care produce automat si livrează + forma cerută!<br><br> HUB-ul are forma ceută pe stratul cabluri, + deci tot ce trebuie să faci e să analizezi forma cerută și să + configurezi automat fabrica pentru asta ! reward_blueprints: title: Planuri desc: Acum poți <strong>copia și lipi</strong> părți ale fabrici tale! Selectează o zonă (Ține apăsat CTRL, apoi trage cu mouse-ul tău), și apasă 'C' pentru a o copia.<br><br>Lipitul nu este - <strong>gratis</strong>, ai nevoie să produci <strong>forme de - planuri</strong> pentru a ți le permite! (Acelea pe care tocmai + <strong>gratis</strong>, ai nevoie să produci <strong>forme de planuri + </strong> pentru a ți le permite! (Acelea pe care tocmai le-ai livrat). no_reward: title: Nivelul următor @@ -688,78 +788,77 @@ storyRewards: desc: Felicitări! Apropo, mai mult conținut este planificat pentru versiunea standalone! reward_balancer: - title: Balancer - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + title: Balansor + desc: Acest multifuncțional <strong>balansor</strong> a fost deblocat - El poate + fi folosit pentru a construi fabrici mai mari <strong>împarțind și îmbinând + itemele</strong> pe benzi multiple! reward_merger: title: Compact Merger - desc: You have unlocked a <strong>merger</strong> variant of the - <strong>balancer</strong> - It accepts two inputs and merges them - into one belt! + desc: Ai deblocat <strong>Compact Merger</strong> o varianta a + <strong>balansorului</strong> - Accepta doua input-uri si le imbina + pe o singura banda! reward_belt_reader: - title: Belt reader - desc: You have now unlocked the <strong>belt reader</strong>! It allows you to - measure the throughput of a belt.<br><br>And wait until you unlock - wires - then it gets really useful! + title: Cititor de bandă + desc: Ai deblocat <strong>cititirul de bandă</strong>! Iți permite să + măsori debitul unei benzi.<br><br>Și așteaptă pană deblochezi + cablurile - atungi devine foarte util! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: Rotator (180 degrees) + desc: Tocmai ai deblocat un <strong>rotator</strong> de 180 de grade! - Îți permite + să rotești o formă cu 180 de grade (Surpriză! :D) reward_display: title: Display - desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the - wires layer to visualize it!<br><br> PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + desc: "Ai deblocat <strong>Display-ul</strong> - Conectează un semnal pe + stratul cabluri pentru a vizualiza!<br><br> PS: Ai observat că cititorul + de benzi are ca output ultimul item procesat? Încearcă să îl afișezi pe ecan !" reward_constant_signal: - title: Constant Signal - desc: You unlocked the <strong>constant signal</strong> building on the wires - layer! This is useful to connect it to <strong>item filters</strong> - for example.<br><br> The constant signal can emit a - <strong>shape</strong>, <strong>color</strong> or - <strong>boolean</strong> (1 / 0). + title: Semnal Constant + desc: Ai deblocat <strong>semnalul constant</strong> pe stratul cabluri! + Acesta e util când e conectat la <strong>filtre de iteme</strong> + spre exemplu.<br><br> Semnalul constant poate emite o + <strong>formă</strong>, <strong>culoare</strong> sau + <strong>valoare binară</strong> (1/0). reward_logic_gates: - title: Logic Gates - desc: You unlocked <strong>logic gates</strong>! You don't have to be excited - about this, but it's actually super cool!<br><br> With those gates - you can now compute AND, OR, XOR and NOT operations.<br><br> As a - bonus on top I also just gave you a <strong>transistor</strong>! + title: Porți logice + desc: Ai deblocat <strong>porțile logice</strong>! Nu e necesar să fi încântat + despre asta, dar e super tare!<br><br> Ce aceste porți logice + poți procesa operațiile AND, OR, XOR și NOT.<br><br> Ca bonus + ți-am dat deblocat și <strong>tranzistorul</strong>! reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - <strong>simulate the processing of shapes</strong>!<br><br> You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:<br><br> - - Build an <strong>automated machine</strong> to create any possible - shape requested by the HUB (I recommend to try it!).<br><br> - Build - something cool with wires.<br><br> - Continue to play - regulary.<br><br> Whatever you choose, remember to have fun! + title: Procesare Virtuală + desc: Tocmai ți-am dat o grămadă de construcții care îți permit să + <strong>simulezi procesarea formelor</strong>!<br><br> Acum poți simula + un tăietor, un rotitor, o mașină de presat și altele pe stratul cabluri! + Cu asta ai acum 3 opțiuni de a continua jocul:<br><br> - + Construiește o <strong>mașină automată</strong> care să creeze orice formă + posibilă cerută de HUB,(Recomand să încerci!).<br><br> - Construiește + ceva mișto cu cabluri.<br><br> - Continuă să joci normal. + <br><br> Orice ai alege, amintește-ți să te distrezi! reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!<br><br> For the beginning I unlocked you the <strong>Quad - Painter</strong> - Connect the slots you would like to paint with on - the wires layer!<br><br> To switch to the wires layer, press - <strong>E</strong>. <br><br> PS: <strong>Enable hints</strong> in - the settings to activate the wires tutorial!" + title: Cabluri și vopsitor cvadruplu + desc: "Tocmai ai deblocat <strong>Stratul Cabluri</strong>: Acesta este un strat + separat de stratul normal și introduce o tonă de noi + mechanici!<br><br> Pentru început am deblocat <strong>Vopsitorul + Cvadruplu</strong> - Conectează sloturile pe care le dorești colorate în + stratul cabluri!<br><br> Pentru a schimba straturile, apasă butonul + <strong>E</strong>. <br><br> PS: <strong>Activează indiciile</strong> în + setări pentru a activa tutorialul!" reward_filter: - title: Item Filter - desc: You unlocked the <strong>Item Filter</strong>! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.<br><br> You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + title: Filtru de iteme + desc: Ai deblocat <strong>Filtrul de iteme</strong>! El va direcționa itemele fie + catre output-ul de sus, fie către cel din dreapta în funcție daca acesta se + potrivește cu semnalul de pe stratul cabluri sau nu.<br><br> De asemenea îi poți + da un semnal de tip valoare binară (1/0) pentru a îl activa sau dezactiva complet. reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: Sfârșitul Versiunii Demo + desc: Ai ajuns la sfârșitul versiunii demo! settings: title: Setări categories: general: General - userInterface: User Interface - advanced: Advanced - performance: Performance + userInterface: Interfață Utilizator + advanced: Avansat + performance: Performanță versionBadges: dev: Dezvoltare staging: Beta @@ -770,17 +869,17 @@ settings: title: Scala de interfață description: Schimbă dimensiunea interfeței utilizatorului. Această interfață tot se va scala bazată pe rezoluția dispozitivului dumneavoastră - dar, această setare controlează cantitatea scalări. + dar această setare controlează cantitatea scalări. scales: super_small: Foarte mică small: Mică - regular: Normal + regular: Normală large: Mare - huge: Imens + huge: Enormă scrollWheelSensitivity: title: Sensitivitatea Zoom-ului description: Schimbă cât de sensitiv zoom-ul este (Fie roata mouse-ului ori - trackpadlui). + trackpadului). sensitivity: super_slow: Foarte încet slow: Încet @@ -793,7 +892,7 @@ settings: pot fi incomplete! fullscreen: title: Fullscreen - description: Este recomandat ca jocul să fie jucat în fullscreen pentru a aveam + description: Este recomandat ca jocul să fie jucat în fullscreen pentru a avea cea mai bună experiență. Doar disponibil în versiunea standalone. soundsMuted: @@ -809,9 +908,9 @@ settings: dark: Întunecată light: Luminoasă refreshRate: - title: Simulation Target - description: Dacă ai un monitor cu 144hz, schimbă refresh rate-ul aici și jocul - va simula la refresh rate-uri mai mari. Acesta poate de fapt + title: Rata de reîmprospătare + description: Dacă ai un monitor cu 144hz, schimbă rata de reîmprospătare aici și + focul va avea o rată de reîmprospătare mai mare. Acesta poate de fapt scădea FPS-urile dacă calculatorul dumneavoastră este prea lent. alwaysMultiplace: title: Plasare multiplă @@ -822,8 +921,7 @@ settings: title: Indicii & Tutoriale description: Dacă este activat, oferă indicii și tutoriale în timpul jocului. De asemenea ascunde anumite elemente ale interfeței utilizatorului - certain UI pâna la anumite nivele pentru a ușura înțelegerea - jocului. + pâna la anumite nivele pentru a ușura înțelegerea jocului. movementSpeed: title: Viteza de deplasare description: Modifică viteza cât de rapid se mișcă vederea folosind tastatura. @@ -840,8 +938,8 @@ settings: nefolositoare. Aceasta permite de asemenea tragerea tunelelor și tunelele în exces vor fi șterse. vignette: - title: Vignette - description: Dacă este activat, înnegrește colțurile ecranului și face textul + title: Vinietă + description: Dacă este activată, înnegrește colțurile ecranului și face textul mai ușor de citit. autosaveInterval: title: Intervalul de salvare automată @@ -856,77 +954,80 @@ settings: disabled: Dezactivat compactBuildingInfo: title: Informații ale construcțiilor compacte - description: Shortens info boxes for buildings by only showing their ratios. - Otherwise adescription and image is shown. + description: Scurtează casetele cu informații ale construcțiilor afișând doar rația. + Altfel se va afișa descrierea și imaginea. disableCutDeleteWarnings: title: Dezactivre Avertizări Tăiere/Ștergere - description: Dezactivează avertizările dialogului adus când sunt șterse mai mult + description: Dezactivează dialogul de avertizare atunci când sunt șterse mai mult de 100 de entități. enableColorBlindHelper: - title: Modul pentru orbi de culoare + title: Modul pentru daltoniști description: Activează diferite unelte care îți permit să joci jocul chiar dacă - ești orb de culoare. + ești daltonist. rotationByBuilding: title: Rotație după tipul clădirii description: Fiecare tip de clădire ține minte ultima rotație pe care i-ai setat-o individual. Aceasta poate fi mai confortabil dacă schimbi frecvent între tipurile clădirilor. soundVolume: - title: Sound Volume - description: Set the volume for sound effects + title: Volum sunet + description: Setează volumul pentru efecte sonore musicVolume: - title: Music Volume - description: Set the volume for music + title: Volum muzică + description: Setează volumul pentru muzică lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: Randarea la calitate slabă ale resurselor hărții + description: Simplifică randarea resurselor pe hartă când marești/micșorezi + pentru a îmbunătăți performanța. În plus arată mai simplu, deci merită + să încerci! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: Dezactivează grila + description: Dezactivarea grilei poate ajuta cu performanța. De asemenea face + jocul să arate mai curat. clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: Curăță cursorul la apăsarea click dreapta + description: Activat în mod implicit, curăță cursorul când apeși click dreapta + în timp ce ai o clădire selectată pentru plasare. Dacă e dezactivat, + poți șterge direct construcția apasând click dreapta. lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: Texturi la calitate slabă(Urât) + description: Folosește texturi la calitate slabă pentru a salva performanța. + Va face jocul să arate mai urât. displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: Afișează marginea chuck-urilor + description: Jocul e împărțit in chuck-uri de 16x16 pătrate, daca această setare + e activată atunci marginile chunk-urilor sunt vizibile. pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: Selectează extractorul + description: Activată în mod implicit, selectează extractorul daca folosești pepita + deasupra unui petic de resurse. simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: Benzi simplificate (Urât) + description: Nu randează itemele de pe bandă decât când ești deasupra pentru a + salva performanță. Nu recomand să joci cu această setare decât dacă este + absolut necesară mai multă performanță. enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: Activeză mișcare mouse + description: Permite harții să se deplaseze mutând cursorul la marginea + ecranului. Viteza depinde de setarea Viteză de Deplasare. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Zoom către Cursor + description: Dacă e activat zoom-ul se va aplica deasupra poziției mouseului, + altfel în mijlocul ecranului. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Mărime resurse hartă + description: Controlează dimensiunea formelor pe hartă (la micșorare) + shapeTooltipAlwaysOn: + title: Sfaturi Formă - Afișează mereu + description: Dacă se va afișa permanent sfalturi despre formă deasupra + construcțiilor, in schimbul afișării doar la apăsarea butonului ALT. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Tastele setate hint: "Indiciu: Asigură-te că foloseșto CTRL, SHIFT și ALT! Ele activează diferite opțiuni de plasare." - resetKeybindings: Reset Keyinbindings + resetKeybindings: Resetează controale tastatură categoryLabels: general: Aplicație ingame: Joc @@ -949,12 +1050,12 @@ keybindings: menuOpenShop: Upgrade-uri menuOpenStats: Statistici toggleHud: Comută interfața - toggleFPSInfo: Comută FPS and Debug Info + toggleFPSInfo: Comută FPS și informații depănare belt: Benzi Rulante underground_belt: Tunel miner: Extractor cutter: Tăietor - rotater: Rotate + rotater: Rotitor stacker: Mașină de presat mixer: Mixer de culori painter: Mașină de pictat @@ -976,25 +1077,34 @@ keybindings: mapMoveFaster: Deplasează-te mai repede lockBeltDirection: Activează planificator de benzi switchDirectionLockSide: "Planificator: Schimbă direcția" - pipette: Pipette - menuClose: Close Menu - switchLayers: Switch layers - wire: Energy Wire - balancer: Balancer - storage: Storage - constant_signal: Constant Signal - logic_gate: Logic Gate - lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing + pipette: Pipetă + menuClose: Închidere meniu + switchLayers: Schimbare straturi + wire: Cabluri Energie + balancer: Balansor + storage: Stocare + constant_signal: Semnal Constant + logic_gate: Poartă logică + lever: Întrerupător (normal) + filter: Filtru + wire_tunnel: Intersecție cabluri display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare - item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + reader: Cititor benzi + virtual_processor: Tăietor virtual + transistor: Tranzistor + analyzer: Analizator de formă + comparator: Comparator + item_producer: Producător iteme (Sandbox) + copyWireValue: "Cabluri: copiază valoarea de sub cursor" + rotateToUp: "Rotește: Direcționează în sus" + rotateToDown: "Rotește: Direcționează în jos" + rotateToRight: "Rotește: Direcționează în dreapta" + rotateToLeft: "Rotește: Direcționează în stânga" + constant_producer: Producător Constant + goal_acceptor: Acceptor de obiectiv + block: Bloc + massSelectClear: Ștergere benzi + showShapeTooltip: Afișează sfat cu forma de output about: title: Despre acest joc body: >- @@ -1004,8 +1114,7 @@ about: Dacă vrei să contribui, verifică <a href="<githublink>" target="_blank">shapez.io pe github</a>.<br><br> - Acest joc nu ar fi fost posibil fără minunata comunitate de pe Discord pe lângă jocurile mele - Chiar ar trebui să te alături - <a href="<discordlink>" target="_blank">server-ului de Discord</a>!<br><br> + Acest joc nu ar fi fost posibil fără minunata comunitate de pe Discord pe lângă jocurile mele - Chiar ar trebui să te alături <a href="<discordlink>" target="_blank">server-ului de Discord</a>!<br><br> Coloana sonoră a fost făcută de <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Este uimitor.<br><br> @@ -1021,63 +1130,147 @@ demo: exportingBase: Exportul întregii baze ca imagine settingNotAvailable: Nu este valabil în demo. tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing <b>R</b>. - - Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use <b>T</b> to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with <b>T</b> - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding <b>SHIFT</b> will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding <b>CTRL</b> allows to place multiple buildings. - - You can hold <b>ALT</b> to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use <b>CTRL</b> + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - HUB-ul acceptă orice fel de input, nu doar forma cerută curent! + - Asigură-te ca fabricile sunt modulare - o să merite! + - Nu construi prea aproape de HUB, altfel va fi un haos! + - Daca stivuirea nu merge, încearcă să interschimbi input-urile. + - Poși modifica sirecția planuitorului de benzi apăsând <b>R</b>. + - Apăsarea <b>CTRL</b> apermite tragerea benzilor fără orientare automată. + - Rațiile stau la fel, cât timp upgrade-urile sunt de același nivel. + - Executarea în serie e mai eficientă decât cea în paralel. + - Vei debloca alte variante ale construcțiilor mai târziu! + - Poți folosi <b>T</b> pentru a schimba prin diferitele variante. + - Simetria e cheia! + - Poți folosi tipuri diferite de tunele alternativ. + - Încearcă să construiești fabrici compacte - o să merite mai târziu! + - Pictorul are o variantă în oglindă pe care o puteți selecta cu <b>T</b> + - Având rapoartele de construcție corecte va maximiza eficiența. + - La nivelul maxim, 5 extractoare vor umple o singură bandă. + - Nu uita de tunele! + - Nu e nevoie să împărțiți itemele în mod egal pentru o eficiență deplină. + - Apăsând <b>SHIFT</b> va activa planificatorul de benzi, permițându-vă să plasați + linii lungi de benzi cu ușurință. + - Tăietoarele taie întotdeauna vertical, indiferent de orientarea lor. + - Pentru a obține alb amestecați toate cele trei culori. + - Buffer-ul de stocare prioritizează primul output. + - Investiți timp pentru a construi modele repetabile - merită! + - Apăsând <b>CTRL</b> permite amplasarea mai multor clădiri. + - Poți ține apăsat <b>ALT</b> pentru a inversa direcția benzilor plasate. + - Eficiența e cheia! + - Patch-urile de formă care sunt mai departe de hub sunt mai complexe. + - Mașinile au o viteză limitată, împărțiți-le pentru o eficiență maximă. + - Folosiți balansoare pentru a vă maximiza eficiența. + - Organizarea este importantă. Încercați să nu intersectați benzile prea mult. + - Planificați din timp, sau va fi un haos uriaș! + - Nu vă ștergeți vechile fabrici! Veți avea nevoie de ele pentru a debloca upgrade-urile. + - Încercați să bateți singur nivelul 20 înainte de a căuta ajutor! + - Nu complica lucrurile, încearcă să rămâi simplu și vei merge departe. + - Poate fi necesar să reutilizați fabricile mai târziu în joc. Planificați-vă fabricile + pentru a fi reutilizabile. + - Uneori, puteți găsi o formă necesară pe hartă fără a o crea cu + stivuitoare. + - Morile de vânt complete nu pot niciodată să apară în mod natural. + - Colorează-ți formele înainte de tăiere pentru o eficiență maximă. + - Cu module, spațiul este doar o percepție; o preocupare pentru oamenii muritori. + - Realizați o fabrică separată de planuri. Sunt importante pentru module. + - Aruncați o privire mai atentă asupra mixerului de culori, iar întrebările tale vor primi răspuns. + - Utilizați <b> CTRL </b> și faceți clic pentru a selecta o zonă. + - Construirea prea aproape de hub poate împiedica proiectele ulterioare. + - Pictograma de fixare de lângă fiecare formă din lista de upgrade o fixează pe ecran. + - Amestecați toate culorile primare împreună pentru a face alb! + - Aveți o hartă infinită, nu vă strângeți fabrica, extindeți-vă! + - Încercați și Factorio! Este jocul meu preferat. + - Tăietoarele cvadruple tăie în sensul acelor de ceasornic începând din dreapta sus! + - Puteți descărca salvările din meniul principal! + - Acest joc are o mulțime de scurtături de taste utile! Asigurați-vă că verificați + pagina de setări. + - Acest joc are o mulțime de setări, asigurați-vă că le verificați! + - Marcatorul de la HUB are o busolă mică pentru a indica direcția sa! + - Pentru a curăța centurile, tăiați zona și apoi lipiți-o în aceeași locație. + - Apăsați F4 pentru a afișa FPS și Tick Rate-ul. + - Apăsați de două ori F4 pentru a afișa căsuța mouse-ului și a camerei. + - Puteți face clic pe o formă fixată din partea stângă pentru a o anula. +puzzleMenu: + play: Joacă + edit: Editează + title: Titlu + createPuzzle: Crează puzzle + loadPuzzle: Încarcă + reviewPuzzle: Revizuie și publică + validatingPuzzle: Validează Puzzle + submittingPuzzle: Trimite Puzzle + noPuzzles: Nu există momentan niciun puzzle în această secțiune. + categories: + levels: Niveluri + new: Nou + top-rated: Cele mai apreciate + mine: Puzzle-urile mele + easy: Ușor + hard: Greu + completed: Completat + medium: Medium + official: Official + trending: În trending azi + trending-weekly: În treding săptămânal + categories: Categorii + difficulties: După Dificultate + account: Puzzle-urile mele + search: Căutare + validation: + title: Puzzle Invalid + noProducers: Te rugăm plasează un producător constant! + noGoalAcceptors: Te rugăm plasează un acceptor de obiective! + goalAcceptorNoItem: Unul sau mai multe acceptoare de obiective nu au stabilit niciun + item. Livrează o formă la ele pentru a continua. + goalAcceptorRateNotMet: Unul sau mai multe acceptoare de obiective nu primesc suficiente + iteme. Asigură-te că indicatoarele sunt verzi pentru toate acceptoarele. + buildingOutOfBounds: Una sau mai multe construcții sunt în afara ariei de construcție. + Mărește zona sau șterge-le. + autoComplete: Puzzle-ul tău se completeaza automat! Asigură-te că producătoarele + constante nu livrează direct către acceptoarele de obiective. + difficulties: + easy: Ușor + medium: Medium + hard: Greu + unknown: Neevaluat + dlcHint: Ai cumpărat deja DLC-ul? Asigură-te ca e activat pe + shapez.io în biblioteca ta, selectând Properietăți > DLC-uri. + search: + action: Caută + placeholder: Introdu Puzzle sau autor + includeCompleted: Include completate + difficulties: + easy: Ușor + medium: Medium + hard: Greu + durations: + any: Orice durată + short: Scurt (< 2 minute) + medium: Normal + long: Lung (> 10 minute) +backendErrors: + ratelimit: Efectuați acțiuni prea repede. Vă rugăm să așteptați puțin. + invalid-api-key: Comunicarea cu serverul a eșuat. Vă rugăm actualizați/reporniți + jocul (Invalid Api Key). + unauthorized: Comunicarea cu serverul a eșuat. Vă rugăm actualizați/reporniți + jocul (Unauthorized). + bad-token: Comunicarea cu serverul a eșuat. Vă rugăm actualizați/reporniți + jocul (Bad Token). + bad-id: Identificator Puzzle Invalid + not-found: Puzzle-ul căutat nu poate fi găsit + bad-category: Categoria căutată nu poate fi găsită + bad-short-key: Cheia scurtă furnizată este invalidă + profane-title: Titlul puzzle-ului contine cuvinte vulgare. + bad-title-too-many-spaces: Titlul puzzle-ului prea scurt. + bad-shape-key-in-emitter: Un producător constant are un item invalid. + bad-shape-key-in-goal: Un acceptor de obiectiv are un item invalid. + no-emitters: Puzzle-ul tău nu conține niciun producător constant + no-goals: Puzzle-ul tău nu conține niciun acceptor de obiectiv. + short-key-already-taken: Această cheie scurtă e deja folosită. Alege alta. + can-not-report-your-own-puzzle: Nu îți poți raporta propriul puzzle. + bad-payload: Cererea conține date invalide. + bad-building-placement: Puzzle-ul conține construcții așezate in mod nepermis. + timeout: Cererea a expirat. + too-many-likes-already: Acest puzzle are deja prea multe aprecieri. Dacă tot îl + dorești înlăturat, te rog contactează-ne la support@shapez.io! + no-permission: Nu ai permisiunea de a face acest lucru. diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 6c01272e..e5c03c19 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -3,49 +3,23 @@ steamPage: создания и объединения все более сложных фигур на бесконечной карте. discordLinkShort: Официальный Discord сервер intro: >- - Shapez.io - это спокойная игра о создании фабрик для автоматизации - создания сложных геометрических фигур. + Любите игры про автоматизацию? Тогда вы по адресу! - По мере управления уровня, фигуры становятся все сложнее, так что придется расширять фабрику засчет бесконечной карты. + shapez.io это спокойная игра, в которой вам предстоит строить фабрики по автоматизированному производству геометрических фигур. По мере управления уровня, фигуры становятся все сложнее, так что придется расширять фабрику за счет бесконечной карты. - Если этого мало, то Вам так же придется экспоненциально производить все больше и больше фигур, чтобы удовлетворить потребности Вашей фабрики. Ключ к успеху - расширение! + Если этого мало, то Вам так же придется экспоненциально увеличивать производство, чтобы удовлетворить потребности Вашей фабрики. Ключ к успеху - масштабирование! И если в начале вам понадобится обрабатывать только формы, то позже вы начнёте их раскрашивать, добывая и комбинируя красители. Вначале игры Вам понадобится производить только фигуры, однако позже фигуры надо будет окрашивать. Для этого добывайте и смешивайте краски! Приобретение игры в Steam предоставляет доступ к полной версии игры, но вы можете опробовать демоверсию игры на shapez.io и принять решение позже! - title_advantages: Преимущества полной версии - advantages: - - <b>12 новых уровней</b> - всего 26 уровней! - - <b>18 новых построек</b> для полностью автоматизированной фабрики! - - <b>20 стадий улучшения</b> для долгих часов веселья! - - <b>Провода</b> - открывает полноценное новое измерение! - - <b>Темная тема</b>! - - Неограниченные сохранения - - Неограниченные маркеры - - Поддержите меня! ❤️ - title_future: Запланированный контент - planned: - - Библиотека чертежей (только для Полной версии) - - Достижения Steam - - Режим головоломок - - Мини-карта - - Моды - - Режим песочницы - - ... и многое другое! - title_open_source: Эта игра находится в открытом доступе! - title_links: Ссылки - links: - discord: Официальный Discord сервер - roadmap: Планы - subreddit: Subreddit - source_code: Исходный код (GitHub) - translate: Помочь с переводом - text_open_source: >- - Кто угодно может внести свой вклад в разработку игры - я активно - вовлечен в сообщество и стараюсь просмотреть все предложения и по - возможности прислушиваться к отзывам. - - Не забудьте заглянуть на мой Trello board, чтобы ознакомиться с планами на будущее! + what_others_say: Что говорят люди о shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Загрузка error: Ошибка @@ -77,26 +51,33 @@ global: escape: ESC shift: SHIFT space: ПРОБЕЛ + loggingIn: Logging in demoBanners: title: Демоверсия intro: Приобретите полную версию, чтобы разблокировать все возможности! mainMenu: play: Играть - changelog: Список изменений - importSavegame: Импорт - openSourceHint: Это игра с открытым исходным кодом! - discordLink: Офици- альный Дискорд - helpTranslate: Помоги с переводом! - browserWarning: Извините, но игра работает медленно в вашем браузере! - Приобретите полную версию или загрузите Chrome чтобы ознакомится с игрой - в полной мере. - savegameLevel: Уровень <x> - savegameLevelUnknown: Неизвестный уровень continue: Продолжить newGame: Новая Игра - madeBy: Создал <author-link> + changelog: Список изменений subreddit: Reddit + importSavegame: Импорт + openSourceHint: Это игра с открытым исходным кодом! + discordLink: Официальный Дискорд сервер + helpTranslate: Помоги с переводом! + madeBy: Создал <author-link> + browserWarning: Извините, но игра работает медленно в вашем браузере! + Приобретите полную версию или загрузите Google Chrome, чтобы ознакомится + с игрой в полной мере. + savegameLevel: Уровень <x> + savegameLevelUnknown: Неизвестный уровень savegameUnnamed: Без названия + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -109,7 +90,10 @@ dialogs: deleteGame: Я знаю, что я делаю viewUpdate: Посмотреть Обновление showUpgrades: Показать Улучшения - showKeybindings: Показать Управление + showKeybindings: Показать Управление (Привязку клавиш) + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Ошибка импортирования text: Не удалось импортировать сохранение игры. @@ -122,7 +106,7 @@ dialogs: confirmSavegameDelete: title: Подтвердите удаление. text: Вы уверены, что хотите удалить это сохранение?<br><br> '<savegameName>' на - уровне <savegameLevel><br><br> Это не может быть отменено! + уровне <savegameLevel><br><br> Оно будет удалено безвозвратно! savegameDeletionError: title: Ошибка удаления text: Не удалось удалить сохранение игры. @@ -135,15 +119,15 @@ dialogs: «Esc» для отмены. resetKeybindingsConfirmation: title: Сброс управления - desc: Это сбросит все настройки управления к их значениям по умолчанию. - Подтвердите это действие. + desc: Это сбросит все настройки управления к значениям по умолчанию. Подтвердите + это действие. keybindingsResetOk: title: Сброс управления desc: Настройки управления сброшены до соответствующих значений по умолчанию! featureRestriction: title: Демоверсия desc: Вы попытались получить доступ к функции (<feature>), которая недоступна в - демоверсии. Вы можете приобрести полную версию чтобы пользоваться + демоверсии. Вы можете приобрести полную версию, чтобы пользоваться всеми функциями! oneSavegameLimit: title: Лимит сохранений @@ -162,6 +146,14 @@ dialogs: title: Подтвердить удаление desc: "Вы собираетесь удалить много построек (точнее: <count>)! Вы действительно хотите сделать это?" + massCutConfirm: + title: Подтвердите вырезку + desc: "Вы собираетесь вырезать много зданий (точнее: <count>)! Вы уверены, что + хотите это сделать?" + massCutInsufficientConfirm: + title: Подтвердите вырезку + desc: Вы не можете позволить себе вставить эту область! Вы уверены, что хотите + вырезать её? blueprintsNotUnlocked: title: Еще не открыто desc: Чертежи еще не открыты! Завершите больше уровней, чтобы открыть их. @@ -176,31 +168,23 @@ dialogs: Инвертировать направление размещаемых конвейерных лент.<br>" createMarker: title: Новый маркер + titleEdit: Редактирование маркера desc: Дайте ему значимое название, вы также можете добавить <strong>короткий ключ</strong> фигуры (Который можно сгенерировать <link>здесь</link>) - titleEdit: Редактирование маркера - markerDemoLimit: - desc: Вы можете создать только 2 своих маркера в демоверсии. Приобретите полную - версию для безлимитных маркеров. - massCutConfirm: - title: Подтвердите вырезку - desc: "Вы собираетесь вырезать много зданий (точнее: <count>)! Вы уверены, что - хотите это сделать?" - exportScreenshotWarning: - title: Экспорт скриншота - desc: Вы собираетесь экспортировать вашу базу в виде скриншота. Обратите - внимание, что это может быть довольно медленным процессом для - большой базы и даже привести к аварийному завершению игры! - massCutInsufficientConfirm: - title: Подтвердите вырезку - desc: Вы не можете позволить себе вставить эту область! Вы уверены, что хотите - вырезать ее? editSignal: title: Установить Сигнал descItems: "Выберите объект:" descShortKey: ... или введите <strong>короткий ключ</strong> фигуры (Который можно сгенерировать <link>здесь</link>) + markerDemoLimit: + desc: Вы можете создать только 2 своих маркера в демоверсии. Приобретите полную + версию для безлимитных маркеров. + exportScreenshotWarning: + title: Экспорт скриншота + desc: Вы собираетесь экспортировать вашу базу в виде скриншота. Обратите + внимание, что это может быть довольно медленным процессом для + большой базы и даже привести к аварийному завершению игры! renameSavegame: title: Переименовать Сохранение desc: Здесь вы можете изменить название своего сохранения. @@ -209,7 +193,73 @@ dialogs: desc: Для этого уровня доступно видео-обучение! Посмотрите его? tutorialVideoAvailableForeignLanguage: title: Доступно обучение - desc: Для этого уровня доступно видео-обучение, но только на английском языке. Посмотрите его? + desc: Для этого уровня доступно видео-обучение, но только на английском языке. + Посмотрите его? + editConstantProducer: + title: Установить предмет + puzzleLoadFailed: + title: Не удалось загрузить головоломки + desc: "К сожалению, не удалось загрузить головоломки:" + submitPuzzle: + title: Отправить головоломку + descName: "Дайте имя вашей головоломке:" + descIcon: "Введите уникальный короткий ключ, который будет показан как иконка + вашей головоломки (Вы можете сгенерировать их <link>здесь</link>, + или выбрать один из случайно предложенных фигур ниже):" + placeholderName: Название головоломки + puzzleResizeBadBuildings: + title: Невозможно изменить размер + desc: Нельзя уменьшить область, потому что некоторые постройки будут вне + области. + puzzleLoadError: + title: Bad Puzzle + desc: "Не удалось загрузить головоломки:" + offlineMode: + title: Оффлайн режим + desc: Нам не удалось связаться с сервеами, поэтому игра будет работать в оффлайн + режиме. Убедитесь, что вы подключены к интернету. + puzzleDownloadError: + title: Ошибка загрузки + desc: "Не удалось загрузить головломку:" + puzzleSubmitError: + title: Ошибка отправки + desc: "Не удалось отправить вашу головоломку:" + puzzleSubmitOk: + title: Головоломка опубликована + desc: Поздравляю! Ваша головоломка была опубликована, и теперь в нее могут + играть остальные. Теперь вы можете найти ее в разделе "Мои + головоломки". + puzzleCreateOffline: + title: Оффлайн режим + desc: Поскольку вы не в сети, вы не сможете сохранять и / или публиковать свои + головоломки. Вы все еще хотите продолжить? + puzzlePlayRegularRecommendation: + title: Рекомендация + desc: Я <strong>настоятельно</strong> рекомендую пройти обычную игру до уровня + 12 перед игрой в Puzzle DLC, иначе вы можете встретить + непредставленные механики. Вы все еще хотите продолжить? + puzzleShare: + title: Короткий ключ скопирован + desc: Короткий ключ головоломки (<key>) был скопирован в буфер обмена! Он может + быть введен в меню головолом для доступа к головоломке. + puzzleReport: + title: Жалоба на головоломку + options: + profane: Оскорбительная + unsolvable: Не решается + trolling: Троллинг + puzzleReportComplete: + title: Спасибо за ваш отзыв! + desc: Головоломка была помечена. + puzzleReportError: + title: Не удалось сообщить + desc: "Ваша жалоба не может быть обработана:" + puzzleLoadShortKey: + title: Ввод короткого ключа + desc: Введите короткий ключ головоломки, чтобы загрузить ее. + puzzleDelete: + title: Удалить головоломку? + desc: Вы уверены, что хотите удалить '<title>'? Это действие нельзя отменить! ingame: keybindingsOverlay: moveMap: Передвижение @@ -231,6 +281,17 @@ ingame: clearSelection: Отменить pipette: Пипетка switchLayers: Переключить слои + clearBelts: Clear belts + colors: + red: Красный + green: Зеленый + blue: Синий + yellow: Желтый + purple: Фиолетовый + cyan: Бирюзовый + white: Белый + uncolored: Бесцветный + black: Черный buildingPlacement: cycleBuildingVariants: Нажмите <key> для переключения вариантов. hotkeyLabel: "Клавиша: <key>" @@ -288,56 +349,53 @@ ingame: waypoints: Маркеры hub: ХАБ description: ЛКМ по маркеру, чтобы переместиться к нему, ПКМ, чтобы удалить. - <br><br>Нажмите <keybinding> чтобы создать маркер в текущей позиции + <br><br> Нажмите <keybinding> чтобы создать маркер в текущей позиции или <strong>ПКМ</strong>, чтобы выбрать другое место для создания маркера. creationSuccessNotification: Маркер создан. - interactiveTutorial: - title: Обучение - hints: - 1_1_extractor: Поместите <strong>экстрактор</strong> на <strong>фигуру в форме - круга</strong> чтобы добыть ее! - 1_2_conveyor: "Соедините экстрактор <strong>конвейером</strong> с - хабом!<br><br>Подсказка: Необходимо выбрать конвейер и - <strong>нажать и потащить</strong> мышку!" - 1_3_expand: "Это <strong>НЕ</strong> idle-игра! Постройте больше экстракторов и - конвейеров, чтобы достичь цели быстрее.<br><br>Подсказка: - Удерживайте <strong>SHIFT</strong> чтобы разместить несколько - экстракторов, а <strong>R</strong> чтобы вращать их." - 2_1_place_cutter: "Разместите <strong>Резак</strong> для разрезания кругов на две половины! - <br><br> PS: Резак всегда разрезает <strong>сверху вниз</strong> независимо от ориентации." - 2_2_place_trash: Резак может <strong>засориться и остановиться</strong>!<br><br> Используйте - <strong>мусорку</strong> что бы избавиться от в данный момент (!) ненужных частей. - 2_3_more_cutters: "Хорошая работа! Теперь разместите <strong>ещё 2 резака</strong> что бы ускорить - этот медленный процесс!<br><br> PS: Используйте <strong>клавиши 0-9 - </strong> для быстрого доступа к постройкам!" - 3_1_rectangles: "Теперь давайте извлечём немного прямоугольников! <strong>Постройте 4 - экстрактора</strong>и соедините их с хабом.<br><br> PS: - Удерживайте <strong>SHIFT</strong> во время удерживания конвейера для активации планировщика - конвейеров!" - 21_1_place_quad_painter: Разместите <strong>покрасчик для 4 предметов</strong> и получите - <strong>круги</strong>, <strong>белого</strong> и - <strong>красного</strong> цветов! - 21_2_switch_to_wires: Переключите слой проводов нажатием клавиши - <strong>E</strong>!<br><br> Потом <strong>соедините все входы</strong> покрасчика кабелями! - 21_3_place_button: Отлично! Теперь разместите <strong>Переключатель</strong> и присоедини его проводами! - 21_4_press_button: "Нажмите на переключатель что бы заставить его <strong>выдавать истинный сигнал - </strong> и активировать этим покрасчика.<br><br> PS: Не обязательно - соединять все входы! Достаточно двух." - colors: - red: Красный - green: Зеленый - blue: Синий - yellow: Желтый - purple: Фиолетовый - cyan: Бирюзовый - white: Белый - uncolored: Бесцветный - black: Черный shapeViewer: title: Слои empty: Пусто copyKey: Копировать + interactiveTutorial: + title: Обучение + hints: + 1_1_extractor: Поместите <strong>экстрактор</strong> на <strong>фигуру в форме + круга</strong>, чтобы добыть её! + 1_2_conveyor: "Соедините экстрактор <strong>конвейером</strong> с хабом!<br><br> + Подсказка: Необходимо выбрать конвейер и <strong>нажать и + потащить</strong> мышку!" + 1_3_expand: "Это <strong>НЕ</strong> idle-игра! Постройте больше экстракторов и + конвейеров, чтобы достичь цели быстрее.<br><br> Подсказка: + Удерживайте <strong>SHIFT</strong>, чтобы разместить несколько + экстракторов, а <strong>R</strong>, чтобы вращать их." + 2_1_place_cutter: "Разместите <strong>Резак</strong> для разрезания кругов на + две половины!<br><br> Подсказка: Резак всегда разрезает + <strong>сверху вниз</strong> независимо от ориентации." + 2_2_place_trash: Резак может <strong>засориться и остановиться</strong>!<br><br> + Используйте <strong>мусорку</strong>, чтобы избавиться в данный + момент (!) от ненужных частей. + 2_3_more_cutters: "Хорошая работа! Теперь разместите <strong>ещё 2 + резака</strong>, чтобы ускорить этот медленный процесс!<br><br> + Подсказка: Используйте <strong>клавиши 0-9 </strong> для + быстрого доступа к постройкам!" + 3_1_rectangles: "Теперь давайте извлечём немного прямоугольников! + <strong>Постройте 4 экстрактора</strong>и соедините их с + хабом.<br><br> Подсказка: Удерживайте <strong>SHIFT</strong> во + время удерживания конвейера для активации планировщика + конвейеров!" + 21_1_place_quad_painter: Разместите <strong>покрасчик для 4 предметов</strong> и + получите <strong>круги</strong>, <strong>белого</strong> и + <strong>красного</strong> цветов! + 21_2_switch_to_wires: Переключите слой проводов нажатием клавиши + <strong>E</strong>!<br><br> Потом <strong>соедините все + входы</strong> покрасчика кабелями! + 21_3_place_button: Отлично! Теперь разместите <strong>Переключатель</strong> и + присоедини его проводами! + 21_4_press_button: "Нажмите на переключатель, чтобы заставить его + <strong>выдавать истинный сигнал </strong> и активировать этим + покрасчик.<br><br> Подсказка: Не обязательно соединять все + входы! Достаточно двух." connectedMiners: one_miner: 1 Экстрактор n_miners: <amount> Экстрактора(-ов) @@ -351,29 +409,72 @@ ingame: no_thanks: Нет, спасибо! points: levels: - title: 12 Новых Уровней! + title: 12 Новых Уровней desc: Всего 26 уровней! buildings: - title: 18 новых Построек! + title: 18 новых Построек desc: Полностью автоматизируйте свою фабрику! - savegames: - title: ∞ Сохранений - desc: Сколько Вашей душе угодно! + achievements: + title: Достижения + desc: Получи их все! upgrades: - title: ∞ стадий улучшений! + title: ∞ стадий улучшений desc: В демоверсии всего 5! markers: - title: ∞ Маркеров! + title: ∞ Маркеров desc: Никогда не теряйтесь в своей фабрике! wires: - title: Провода! + title: Провода desc: Полноценное дополнительное измерение! darkmode: - title: Темная Тема! + title: Темная Тема desc: Дайте глазам отдохнуть! support: title: Поддержите меня desc: Я занимаюсь разработкой в свободное время! + puzzleEditorSettings: + zoneTitle: Область + zoneWidth: Ширина + zoneHeight: Высота + trimZone: Обрезать + clearItems: Очистить предметы + share: Поделиться + report: Пожаловаться + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Редактор головоломок + instructions: + - 1. Разместите <strong>постоянный производитель</strong>, чтоб + предоставить фигуры и цвета игроку + - 2. Постройте одну или несколько фигур, которые вы хотите, чтобы + игрок построил позже, и доставьте их к одному или нескольким + <strong>приемникам цели</strong> + - 3. Как только приемник цели получил фигуру определенное количество + раз, он <strong>сохраняет фигуру как цель</strong>, которую игрок + должен произвести позже (Обозначается <strong>зеленым + значком</strong>). + - 4. Нажмите <strong>кнопу блокировки</strong> на здании, чтоб + выключить его. + - 5. Как только вы нажали "Обзор", ваша головоломка будет проверена + и вы сможете опубликовать ее. + - 6. После публикации, <strong>все постройки будут удалены</strong> + за исключением производителей и приемников цели - Это часть, в + которой игрок должен разобраться сам :) + puzzleCompletion: + title: Головоломка завершена! + titleLike: "Нажмите на сердечко, если головоломка вам понравилась:" + titleRating: Насколько сложной была головоломка? + titleRatingDesc: Ваша оценка поможет мне в будущем делать вам лучшие предложения + continueBtn: Продолжить игру + menuBtn: Меню + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Автор + shortKey: Короткий ключ + rating: Сложность + averageDuration: Средн. продолжительность + completionRate: Процент завершения shopUpgrades: belt: name: Конвейеры, Разделители & Туннели @@ -388,6 +489,11 @@ shopUpgrades: name: Смешивание & Покраска description: Скорость x<currentMult> → x<newMult> buildings: + hub: + deliver: Доставить + toUnlock: чтобы открыть + levelShortcut: Ур. + endOfDemo: Конец Демо belt: default: name: Конвейер @@ -409,6 +515,22 @@ buildings: tier2: name: Туннель II description: Позволяет перевозить ресурсы под зданиями и конвейерами. + balancer: + default: + name: Балансер + description: Многофункциональный - равномерно распределяет все входы на выходы. + merger: + name: Соединитель (компактный) + description: Соединяет две линии конвейера в одну. + merger-inverse: + name: Соединитель (компактный) + description: Соединяет две линии конвейера в одну. + splitter: + name: Разделитель (компактный) + description: Разделяет одну линию конвейера на две. + splitter-inverse: + name: Разделитель (компактный) + description: Разделяет одну линию конвейера на две. cutter: default: name: Резак @@ -434,7 +556,7 @@ buildings: default: name: Объединитель description: Объединяет два предмета. Если они не могут быть соединены, правый - элемент помещается над левым. + элемент помещается поверх левого. mixer: default: name: Смешиватель @@ -443,6 +565,9 @@ buildings: default: name: Покрасчик description: Красит всю фигуру из левого входа красителем из перпендикулярного. + mirrored: + name: Покрасчик + description: Красит всю фигуру из левого входа красителем из перпендикулярного. double: name: Покрасчик (2Вх.) description: Красит фигуру из левых входов красителем из перпендикулярного. @@ -451,18 +576,15 @@ buildings: description: Позволяет отдельно окрашивать каждую часть фигуры. Только ячейки с <strong>положительным сигналом</strong> на слое с проводами будут окрашены! - mirrored: - name: Покрасчик - description: Красит всю фигуру из левого входа красителем из перпендикулярного. trash: default: name: Мусорка description: Имеет входы со всех сторон. Уничтожает все принимаемые ресурсы. - hub: - deliver: Доставить - toUnlock: чтобы открыть - levelShortcut: Ур. - endOfDemo: Конец Демо + storage: + default: + name: Буферное Хранилище + description: Хранит излишние ресурсы пока есть место. Левый выход в приоритете, + может быть использован как буфер. wire: default: name: Энерг. провод @@ -472,31 +594,10 @@ buildings: description: Передает сигналы, которые могут быть ресурсами, цветами или логическими значениями (1 / 0). Провода разных цветов не соединяются. - balancer: - default: - name: Балансер - description: Многофункциональный - равномерно распределяет все входы на выходы. - merger: - name: Соединитель (компактный) - description: Соединяет две линии ковейера в одну. - merger-inverse: - name: Соединитель (компактный) - description: Соединяет две линии ковейера в одну. - splitter: - name: Разделитель (компактный) - description: Разделяет одну линию конвейера на две. - splitter-inverse: - name: Разделитель (компактный) - description: Разделяет одну линию конвейера на две. - storage: - default: - name: Буферное Хранилище - description: Хранит излишние ресурсы пока есть место. Левый выход в приоритете, - может быть использован как буфер. wire_tunnel: default: name: Пересечение Проводов - description: Позволяет пересекать провода при этом их не соединяя. + description: Позволяет пересекать провода при этом не соединяя их. constant_signal: default: name: Постоянный Сигнал @@ -506,36 +607,46 @@ buildings: default: name: Переключатель description: Может быть переключен, чтобы издавать логический сигнал (1 / 0) на - слое с проводами, который может быть использован для управления - Фильтром, например. + слое с проводами, который может быть использован, например, для + управления Фильтром. logic_gate: default: - name: AND Gate + name: И description: Издает значение "1" если оба входа положительны. (Положительный - значит ресурс, цвет или логическое значение "1") not: - name: NOT Gate + name: НЕ description: Издает значение "1" если вход не положительный. (Положительный - значит ресурс, цвет или логическое значение "1") xor: - name: XOR Gate + name: Исключающее ИЛИ description: Издает значение "1" только один из входов положительный. (Положительный - значит ресурс, цвет или логическое значение "1") or: - name: OR Gate + name: ИЛИ description: Издает значение "1" если хотя бы один вход положительный. (Положительный - значит ресурс, цвет или логическое значение - "1"). + "1") + transistor: + default: + name: Транзистор + description: Пропускает предметы только если вход сбоку имеет истинное значение + (фигура, цвет или "1"). + mirrored: + name: Транзистор + description: Пропускает предметы только если вход сбоку имеет истинное значение + (фигура, цвет или "1"). filter: default: name: Фильтр description: Подключите сигнал, чтобы направить все подходящие ресурсы наверх, а - остальные направо. Также контролируемо логическими сигналами. + остальные направо. Также может контролироваться логическими + сигналами. display: default: name: Экран - description: Подключите сигнал, чтобы отобразить его на экране. Это может + description: Подключите сигнал, чтобы отобразить его на экране. Это может быть ресурс, цвет или логическое значение (1 / 0). reader: default: @@ -547,7 +658,7 @@ buildings: default: name: Анализатор Фигур description: Анализирует правую верхнюю часть низшего слоя фигуры и возвращает - ее форму и цвет. + её форму и цвет. comparator: default: name: Сравнить @@ -564,7 +675,7 @@ buildings: unstacker: name: Виртуальный Разъединитель description: Виртуально извлекает самый верхний слой фигуры направо, а все - остальное направо. + остальное налево. stacker: name: Виртуальный Объединитель description: Виртуально помещает правый предмет поверх левого. @@ -577,23 +688,26 @@ buildings: name: Генератор Ресурсов description: Доступен только в режиме песочницы, производит заданный на слое с проводами сигнал на обычном слое. - transistor: + constant_producer: default: - name: Транзистор - description: Пропускает предметы только если вход сбоку имеет истинноре значение (фигура, - цвет или "1"). - mirrored: - name: Транзистор - description: Пропускает предметы только если вход сбоку имеет истинноре значение (фигура, - цвет или "1"). + name: Постоянный производитель + description: Постоянно выводит указанную фигуру или цвет. + goal_acceptor: + default: + name: Приемник цели + description: Доставьте фигуру в приемник, чтобы установить их в качестве цели. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Разрезание Фигур desc: Разблокирован <strong>резак</strong>, который разрезает фигуры пополам по - вертикали <strong>независимо от ориентации</strong>!<br><br>Не + вертикали <strong>независимо от ориентации</strong>!<br><br> Не забудьте избавляться от излишков, иначе <strong>он забьется и остановится</strong> - для этого я также открыл для Вас - <strong>мусорку</strong>, которая уничтожает все, что в нее + <strong>мусорку</strong>, которая уничтожает все, что в неё попадает! reward_rotater: title: Вращение @@ -603,29 +717,29 @@ storyRewards: title: Покраска desc: "Разблокирован <strong>покрасчик</strong>! Добудьте краситель из жилы (так же, как и фигуры) и объедините его с фигурой в покрасчике, чтобы - раскрасить ее!<br><br>PS: Если вы дальтоник, то в настройках есть - <strong>Режим Дальтоника</strong>!" + раскрасить её!<br><br> Подсказка: Если вы дальтоник, то в настройках + есть <strong>Режим Дальтоника</strong>!" reward_mixer: title: Смешивание Цветов - desc: Разблокирован <strong>смешиватель</strong>! Объедините два цвета в этом - здании, используя <strong>аддитивное смешивание</strong>! + desc: Разблокирован <strong>смешиватель</strong>! Позволяет объединять два + цвета, используя <strong>аддитивное смешивание</strong>! reward_stacker: title: Объединитель desc: Теперь вы можете объединять фигуры <strong>объединителем</strong>! Фигуры - из обеих входов объединяются. Если они могут быть расположены рядом + из обоих входов совмещаются. Если они могут быть расположены рядом друг с другом, они будут <strong>соединены</strong>, иначе фигура из правого входа <strong>наложится</strong> на фигуру из левого! - reward_splitter: - title: Разделитель / Соединитель - desc: Разблокирован <strong>разделитель</strong> один из вариантов - <strong>балансера</strong> - он принимает один вход и разделяет его - на два! + reward_balancer: + title: Балансер + desc: Многофункциональный <strong>балансер</strong> разблокирован - Он + используется для <strong>разделения и обьединения потока + предметов</strong> на несколько конвейеров! reward_tunnel: title: Туннель desc: Разблокирован <strong>туннель</strong>! Теперь вы можете транспортировать предметы под другими конвейерами и зданиями! reward_rotater_ccw: - title: Вращатель (обратный) + title: Обратный Вращатель desc: Разблокирован вариант <strong>вращателя</strong>, вращающий фигуры против часовой стрелки! Чтобы построить его, выберите вращатель и <strong>нажмите 'T', чтобы переключить вариант</strong>! @@ -633,12 +747,27 @@ storyRewards: title: Цепной Экстрактор desc: "Разблокирован <strong>цепной экстрактор</strong>! Он может <strong>передавать свои ресурсы</strong> другим экстракторам, чтобы - вы могли эффективнее извлекать ресурсы!<br><br> PS: Старый + вы могли эффективнее извлекать ресурсы!<br><br> Подсказка: Старый экстрактор был заменен в панели инструментов!" reward_underground_belt_tier_2: title: Туннель II desc: Разблокирован новый вариант <strong>туннеля</strong> с <strong>большей дальностью</strong>, а также вы можете совмещать эти туннели! + reward_merger: + title: Компактный Соединитель + desc: Разблокирован <strong>соединитель</strong> - вариант + <strong>балансера</strong> - он принимает два входа и объединяет их + в один конвейер. + reward_splitter: + title: Разделитель / Соединитель + desc: Разблокирован <strong>разделитель</strong>, один из вариантов + <strong>балансера</strong> - он принимает один вход и разделяет его + на два! + reward_belt_reader: + title: Измеритель + desc: Разблокирован <strong>измеритель</strong>! Он позволяет измерять + пропускную способность конвейера.<br><br> Вы узнаете, как он + полезен, когда разблокируете провода! reward_cutter_quad: title: Резак (4 Выхода) desc: Разблокирован вариант <strong>резака</strong>, разрезающий фигуры на @@ -651,64 +780,46 @@ storyRewards: reward_storage: title: Буферное Хранилище desc: Разблокировано <strong>буферное хранилище</strong> - оно позволяет хранить - в нем ресурсы пока есть место! <br><br> Левый выход в приоритете, + в нем ресурсы пока есть место!<br><br> Левый выход в приоритете, может быть использован как <strong>буфер</strong>! - reward_freeplay: - title: Свободная игра - desc: У Вас получилось! Разблокирован <strong>свободный режим</strong>! Это - означает что теперь фигуры будут генерироваться - <strong>случайно</strong>!<br><br> Так как ХАБ отныне будет - требовать определенную <strong>пропускную способность</strong>, я - настоятельно рекомендую построить механизм, автоматически - доставляющий запрашиваемую фигуру!<br><br> ХАБ выводит запрашиваемую - фигуру на слое с проводами, так что все, что необходимо сделать, - - это проанализировать ее и автоматически настроить вашу фабрику. reward_blueprints: title: Чертежи desc: Теперь вы можете <strong>копировать и вставлять</strong> части вашей фабрики! Выберите область (Удерживая CTRL, перетащите мышь) и - нажмите 'C', чтобы скопировать ее.<br><br>Вставка <strong>не + нажмите 'C', чтобы скопировать её.<br><br> Вставка <strong>не бесплатна</strong>, для этого необходимо произвести <strong>фигуры - для чертежей</strong>! (Которые вы только что доставили). - no_reward: - title: Следующий уровень - desc: "Этот уровень не дал вам награды, но следующий даст! <br><br> PS: Лучше не - разрушайте вашу существующую фабрику - Вам понадобятся - <strong>все</strong> эти фигуры позже, чтобы <strong>разблокировать - улучшения</strong>!" - no_reward_freeplay: - title: Следующий уровень - desc: Поздравляем! Кстати, больше контента планируется для полной версии! - reward_balancer: - title: Балансер - desc: - Многофункциональный <strong>банансер</strong> разблокирован - Он используется для <strong>разделения и обьединения - потора предметов</strong> на несколько конвейеров! - reward_merger: - title: Компактный Соединитель - desc: Разблокирован <strong>соединитель</strong> - вариант - <strong>балансера</strong> - он принимает два входа и объединяет их - в один конвейер. - reward_belt_reader: - title: Измеритель - desc: Разблокирован <strong>измеритель</strong>! Он позволяет измерять - пропускную способность конвейера.<br><br>А как полезен он будет, - когда вы разблокируете провода! + для чертежей</strong>! (Которые вы только что доставили) reward_rotater_180: title: Вращатель (180 градусов) desc: Разблокирован <strong>вращатель</strong> на 180 градусов! - Он позволяет - вращать фигур на 180 градусов (Сюрприз! :D) + вращать фигуры на 180 градусов (Сюрприз! :D) + reward_wires_painter_and_levers: + title: Провода & Покрасчик (4 входа) + desc: "Вы разблокировали <strong>Слой проводов</strong>: Это отдельный слой выше + обычного слоя и он предоставляет много новых механик!<br><br> Для + начала я разблокировал вам <strong>Покрасчик на 4 входа</strong> - + Соедини слоты которые нужно покрасить на слое проводов!<br><br> Для + переключения видимости слоя проводов, нажми + <strong>E</strong>.<br><br> Подсказка: <strong>Включи + подсказки</strong> в настройках, чтобы активировать обучение по + проводам!" + reward_filter: + title: Фильтр + desc: Разблокирован <strong>Фильтр</strong>! Он направит ресурсы наверх или + направо в зависмости от того, совпадают ли они с установленным + сигналом.<br><br> Вы также можете передавать логические значения (1 + / 0), чтобы полностью отключить или включить его. reward_display: title: Экран desc: "Разблокирован <strong>Экран</strong> - Подключите сигнал на слое с - проводами чтобы отобразить его!<br><br> PS: Заметили ли вы, что - измеритель и буферное хранилище отображают последний ресурс, + проводами, чтобы отобразить его!<br><br> Подсказка: Заметили ли вы, + что измеритель и буферное хранилище отображают последний ресурс, прошедший через них? Попробуйте отобразить его на экране!" reward_constant_signal: title: Постоянный Сигнал desc: Разблокирован <strong>постоянный сигнал</strong> на слое с проводами! Он - полезен для подключения к <strong>фильтрам</strong>, - например.<br><br> Постоянный сигнал может издавать + полезен, например, для подключения к + <strong>фильтрам</strong>.<br><br> Постоянный сигнал может издавать <strong>фигуру</strong>, <strong>цвет</strong> или <strong>логическое значение</strong> (1 / 0). reward_logic_gates: @@ -727,22 +838,27 @@ storyRewards: - Построить <strong>автоматический механизм</strong> для производства любой фигуры, запрашиваемой ХАБ (рекомендую попробовать!).<br><br> - Построить что-то клевое, используя - провода.<br><br> - Продолжить обычную игру. <br><br> Что бы вы не + провода.<br><br> - Продолжить обычную игру.<br><br> Чтобы вы не выбрали, не забывайте хорошо проводить время! - reward_wires_painter_and_levers: - title: Провода & Покрасчик (4 входа) - desc: "Вы разблокировали <strong>Слой проводов</strong>: Это отдельный - слой выше обычного слоя и он предоставляет много новых - механик!<br><br> Для начала я разблокировал тебе <strong>Покрасчик на 4 входа - </strong> - Соедини слоты которые нужно покрасить на слое проводов!<br><br> Для переключения видимости слоя проводов, нажми - <strong>E</strong>. <br><br> PS: <strong>Включи подсказки</strong> в - настройках что бы активировать обучение по проводам!" - reward_filter: - title: Фильтр - desc: Разблокирован <strong>Фильтр</strong>! Он направит ресурсы наверх или - направо в зависмости от того, совпадают ли они с установленным - сигналом. <br><br> Вы также можете передавать логические значения (1 - / 0), чтобы полностью отключить или включить его. + no_reward: + title: Следующий уровень + desc: "Этот уровень не дал вам награды, но следующий даст!<br><br> Подсказка: + Лучше не разрушайте вашу существующую фабрику - Вам понадобятся + <strong>все</strong> эти фигуры позже, чтобы <strong>разблокировать + улучшения</strong>!" + no_reward_freeplay: + title: Следующий уровень + desc: Поздравляем! Кстати, больше контента планируется для полной версии! + reward_freeplay: + title: Свободная игра + desc: У Вас получилось! Разблокирован <strong>свободный режим</strong>! Это + означает что теперь фигуры будут генерироваться + <strong>случайно</strong>!<br><br> Так как ХАБ отныне будет + требовать определенную <strong>пропускную способность</strong>, я + настоятельно рекомендую построить механизм, автоматически + доставляющий запрашиваемую фигуру!<br><br> ХАБ выводит запрашиваемую + фигуру на слое с проводами, так что все, что необходимо сделать, - + это проанализировать её и автоматически настроить вашу фабрику. reward_demo_end: title: Конец Демо desc: Вы достигли конца демоверсии игры! @@ -752,12 +868,13 @@ settings: general: Основные userInterface: Интерфейс advanced: Продвинутые - performance: Performance + performance: Производительность versionBadges: dev: Разработчик staging: Постановка prod: Произведена buildDate: Сборка <at-date> + rangeSliderPercentage: <amount> % labels: uiScale: title: Размер интерфейса @@ -771,73 +888,6 @@ settings: regular: Средний large: Большой huge: Огромный - scrollWheelSensitivity: - title: Чувствительность зума - description: Изменяет чувствительность зума (колесико мыши или сенсорная - панель). - sensitivity: - super_slow: Очень медленно - slow: Медленно - regular: Средне - fast: Быстро - super_fast: Очень быстро - language: - title: Язык - description: Выберите язык. Все переводы сделаны пользователями и могут быть не - законченными! - fullscreen: - title: Полный экран - description: Для лучшей игры рекомендуется играть в полноэкранном режиме. - Доступно только в полной версии. - soundsMuted: - title: Выключить звуки - description: Если включено, выключает все звуковые эффекты. - musicMuted: - title: Выключить музыку - description: Если включено, выключает музыку. - theme: - title: Тема игры - description: Выберите тему игры (светлая / темная). - themes: - dark: Темная - light: Светлая - refreshRate: - title: Частота обновления - description: Если у вас монитор 144 Гц, измените частоту обновления здесь, чтобы - игра правильно выглядела при более высоких частотах обновления. - Это может уменьшить FPS, если ваш компьютер работает слишком - медленно. - alwaysMultiplace: - title: Многократное размещение - description: Если включено, все здания останутся выбранными после размещения, - пока вы не отмените выбор. Это эквивалентно постоянному - удержанию SHIFT. - offerHints: - title: Подсказки & Обучение - description: Стоит ли предлагать подсказки и обучающий материал во время игры. - Также скрывает определенные элементы пользовательского - интерфейса для данного уровня, предназначенные для облегчения - "входа" в игру. - movementSpeed: - title: Скорость движения - description: Изменяет скорость перемещения изображения при использовании - клавиатуры. - speeds: - super_slow: Очень медленно - slow: Медленно - regular: Средне - fast: Быстро - super_fast: Очень быстро - extremely_fast: Чрезвычайно быстро - enableTunnelSmartplace: - title: Умные Туннели - description: Если включено, то при размещении туннелей автоматически удаляются - ненужные конвейеры. Это также позволяет протягивать туннели, - причем лишние туннели будут удалены. - vignette: - title: Виньетирование - description: Включает виньетирование, которое затемняет углы экрана и облегчает - чтение текста. autosaveInterval: title: Интервал автосохранения description: Управляет тем, как часто игра автоматически сохраняется. Также @@ -849,6 +899,88 @@ settings: ten_minutes: 10 Минут twenty_minutes: 20 Минут disabled: Отключено + scrollWheelSensitivity: + title: Чувствительность зума + description: Изменяет чувствительность зума (колесико мыши или сенсорная + панель). + sensitivity: + super_slow: Очень медленно + slow: Медленно + regular: Средне + fast: Быстро + super_fast: Очень быстро + movementSpeed: + title: Скорость движения + description: Изменяет скорость перемещения изображения при использовании + клавиатуры. + speeds: + super_slow: Очень медленно + slow: Медленно + regular: Средне + fast: Быстро + super_fast: Очень быстро + extremely_fast: Чрезвычайно быстро + language: + title: Язык + description: Выберите язык. Все переводы сделаны пользователями и могут быть не + законченными! + enableColorBlindHelper: + title: Режим Дальтоника + description: Включает различные инструменты, которые позволяют играть в игру + дальтоникам. + fullscreen: + title: Полный экран + description: Для лучшей игры рекомендуется играть в полноэкранном режиме. + Доступно только в полной версии. + soundsMuted: + title: Выключить звуки + description: Если включено, выключает все звуковые эффекты. + musicMuted: + title: Выключить музыку + description: Если включено, выключает музыку. + soundVolume: + title: Громкость Звука + description: Задает громкость звуковых эффектов. + musicVolume: + title: Громкость музыки + description: Задает громкость музыки. + theme: + title: Тема игры + description: Выберите тему игры (светлая / темная). + themes: + dark: Темная + light: Светлая + refreshRate: + title: Тикрейт + description: Определяет, сколько игровых тиков происходит в секунду. Более + высокая частота тиков означает лучшую точность, но также и + худшую производительность. На низких тикрейтах симуляция может + быть неточной. + alwaysMultiplace: + title: Многократное размещение + description: Если включено, все здания останутся выбранными после размещения, + пока вы не отмените выбор. Это эквивалентно постоянному + удержанию SHIFT. + offerHints: + title: Подсказки & Обучение + description: Стоит ли предлагать подсказки и обучающий материал во время игры. + Также скрывает определенные элементы пользовательского + интерфейса для данного уровня, предназначенные для облегчения + "входа" в игру. + enableTunnelSmartplace: + title: Умные Туннели + description: Если включено, то при размещении туннелей автоматически удаляются + ненужные конвейеры. Это также позволяет протягивать туннели, + причем лишние туннели будут удалены. + vignette: + title: Виньетирование + description: Включает виньетирование, которое затемняет углы экрана и облегчает + чтение текста. + rotationByBuilding: + title: Поворот по типу здания + description: Каждый тип здания запоминает поворот, который в последний раз был + установлен. С этой настройкой может быть удобнее, при частом + переключении между различными типами зданий. compactBuildingInfo: title: Компактная Информация о Зданиях description: Сокращает отображаемую информацию о зданиях, показывая только их @@ -858,21 +990,6 @@ settings: title: Отключить Предупреждение о Вырезании/Удалении description: Отключает диалоговые окна с предупреждениями, появляющиеся при вырезании/удалении более 100 объектов. - enableColorBlindHelper: - title: Режим Дальтоника - description: Включает различные инструменты, которые позволяют играть в игру - дальтоникам. - rotationByBuilding: - title: Поворот по типу здания - description: Каждый тип здания запоминает поворот, который в последний раз был - установлен. С этой настройкой может быть удобнее, при частом - переключении между различными типами зданий. - soundVolume: - title: Громкость Звука - description: Задает громкость звуковых эффектов. - musicVolume: - title: Music Volume - description: Задает громкость музыки. lowQualityMapResources: title: Низкое качество ресурсов на карте description: Упрощает отображение ресурсов на карте при приближении для @@ -901,8 +1018,8 @@ settings: пипетку над жилой с ресурсами. simplifiedBelts: title: Упрощенные Конвейеры (Некрасиво) - description: Не отображает ресурсы, находящиеся на конвейере, если не навести - курсор для улучшения производительности. Не рекомендую играть с + description: Для улучшения производительности не отображает ресурсы, находящиеся + на конвейере, если не навести курсор. Не рекомендую играть с этой настройкой, если вас устраивает производительность. enableMousePan: title: Включить Перемещение Мышкой @@ -910,12 +1027,16 @@ settings: зависит от настройки Скорости движения. zoomToCursor: title: Приближение в точку курсора - description: Если включено, приближение будет в направлении курсора мыши, - иначе в центр экрана. + description: Если включено, приближение будет в направлении курсора мыши, иначе + в центр экрана. mapResourcesScale: title: Размер ресурсов на карте description: Устанавливает размер фигур на карте (когда вид достаточно отдалён). - rangeSliderPercentage: <amount> % + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. + tickrateHz: <amount> Hz keybindings: title: Настройки управления hint: "Подсказка: Обязательно используйте CTRL, SHIFT и ALT! Они дают разные @@ -936,15 +1057,20 @@ keybindings: mapMoveRight: Вправо mapMoveDown: Вниз mapMoveLeft: Влево + mapMoveFaster: Ускорение передвижения centerMap: Центрировать карту mapZoomIn: Приблизить mapZoomOut: Отдалить createMarker: Создать Маркер menuOpenShop: Улучшения menuOpenStats: Статистика + menuClose: Закрыть меню toggleHud: Переключить HUD toggleFPSInfo: Включить/выключить FPS и информацию отладки + switchLayers: Переключить слои + exportScreenshot: Экспорт всей Базы в виде Изображения belt: Конвейер + balancer: Балансер underground_belt: Туннель miner: Экстрактор cutter: Резак @@ -953,29 +1079,8 @@ keybindings: mixer: Смешиватель painter: Покрасчик trash: Мусорка - rotateWhilePlacing: Вращать - rotateInverseModifier: "Модификатор: Вращать против часовой стрелки" - cycleBuildingVariants: Переключение Вариантов - confirmMassDelete: Подтверждение Массового Удаления - cycleBuildings: Переключение Построек - massSelectStart: Модификатор для выделения области - massSelectSelectMultiple: Выбрать несколько областей - massSelectCopy: Копировать область - placementDisableAutoOrientation: Отключить автоопределение направления - placeMultiple: Оставаться в режиме размещения - placeInverse: Инвертировать автоопределение направления конвейеров - pasteLastBlueprint: Вставить последний чертеж - massSelectCut: Вырезать область - exportScreenshot: Экспорт всей Базы в виде Изображения - mapMoveFaster: Ускорение передвижения - lockBeltDirection: Включает конвейерный планировщик - switchDirectionLockSide: "Планировщик: Переключение сторон" - pipette: Пипетка - menuClose: Закрыть меню - switchLayers: Переключить слои - wire: Энергетический провод - balancer: Балансер storage: Буферное Хранилище + wire: Энергетический провод constant_signal: Постоянный Сигнал logic_gate: Логический Элемент lever: Переключатель (обычный) @@ -988,7 +1093,32 @@ keybindings: analyzer: Анализатор Фигур comparator: Сравнить item_producer: Генератор Ресурсов (Песочница) + pipette: Пипетка + rotateWhilePlacing: Вращать + rotateInverseModifier: "Модификатор: Вращать против часовой стрелки" + rotateToUp: "Повернуть: Направление Вверх" + rotateToDown: "Повернуть: Направление Вниз" + rotateToRight: "Повернуть: Направление Вправо" + rotateToLeft: "Повернуть: Направление Влево" + cycleBuildingVariants: Переключение Вариантов + confirmMassDelete: Подтверждение Массового Удаления + pasteLastBlueprint: Вставить последний чертеж + cycleBuildings: Переключение Построек + lockBeltDirection: Включает конвейерный планировщик + switchDirectionLockSide: "Планировщик: Переключение сторон" copyWireValue: "Провода: скопировать значение под курсором" + massSelectStart: Модификатор для выделения области + massSelectSelectMultiple: Выбрать несколько областей + massSelectCopy: Копировать область + massSelectCut: Вырезать область + placementDisableAutoOrientation: Отключить автоопределение направления + placeMultiple: Оставаться в режиме размещения + placeInverse: Инвертировать автоопределение направления конвейеров + constant_producer: Постоянный генератор + goal_acceptor: Приёмник предметов + block: Блок + massSelectClear: Очистить конвейеры + showShapeTooltip: Show shape output tooltip about: title: Об игре body: >- @@ -998,8 +1128,7 @@ about: Если вы хотите внести свой вклад игре - <a href="<githublink>" target="_blank">shapez.io в github</a>.<br><br> - Эта игра не была бы возможна без большого сообщества в дискорде, которое собралось вокруг моих игр - Вам действительно стоит присоединиться к - <a href="<discordlink>" target="_blank">серверу Discord!</a>!<br><br> + Эта игра не была бы возможна без большого сообщества в Discord, которое собралось вокруг моих игр - Вам действительно стоит присоединиться к <a href="<discordlink>" target="_blank">серверу Discord!</a>!<br><br> Саундтрек сделал <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Он потрясающий.<br><br> @@ -1024,7 +1153,7 @@ tips: - Соотношения всегда одинаковы, если уровни улучшений равны. - Последовательное выполнение эффективнее, чем параллельное. - Вам будут открываться новые варианты построек по мере прохождения! - - Нажмите <b>T</b>, чтобы переключаться между различными вариантами. + - Нажмите <b>T</b>, чтобы переключаться между различными вариантами. - Симметрия - ключ к успеху! - Вы можете переплетать между собой туннели разных уровней. - Попробуйте строить компактные фабрики - вы не пожалеете! @@ -1032,48 +1161,140 @@ tips: <b>T</b>. - Правильные соотношения построек позволяет улучшить эффективность фабрики. - На максимальном уровне, 5 экстракторов заполняют один конвейер. + - Не забывайте про туннели! + - Вам не нужно делить предметы равномерно для полной эффективности. + - Удерживание <b>SHIFT</b> активирует планировщик конвейеров, что упрощает + постройку длинных конвейеров. - Резаки всегда разрезают пополам по вертикали вне зависимости от ориентации. - Чтобы получить белый цвет, смешайте все три цвета. - - Удерживание <b>SHIFT</b> активирует планировщик конвейеров, что упрощает простройку длинных конвейеров. + - Буффер хранилища с большим приоритетом выдаёт предметы на левый выход. - Вкладывайте время в строительство повторяемых механизмов - оно того стоит! - - Смешайте все три цвета для получения булого. - - Буффер хранилища с большим приоритетом выдаёт на левый выход. + - Удерживание <b>SHIFT</b> даёт возможность размещения нескольких построек. + - Можно зажать <b>ALT</b> для инвертирования направления размещаемых + конвейеров. - Эффективность - ключ к успеху! - - Удерживание <b>CTRL</b> даёт возможность размещения нескольких построек. - - Можно зажать <b>ALT</b> для инвертирования направления размещаемых конвейеров. + - Чем дальше от ХАБ-а, тем сложнее формы в жилах! + - Здания имеют лимит скорости, разделяйте их для максимальной эффективности. - Используйте балансеры, чтобы максимизировать эффективность. - Организация очень важна, старайтесь не пересекать конвейеры слишком часто. - Планируйте заранее, иначе начнется ужасный хаос! - Не удаляйте свои старые фабрики! Они понадобятся вам, чтобы открывать улучшения. - - Попробуйте пройти 20-ый уровень самостоятельно, прежде чем искать помощи! + - Попробуйте пройти 20-ый или 26-ой уровень самостоятельно, прежде чем + искать помощи! - Не усложняйте себе жизнь, старайтесь думать проще и вы достигните больших высот. - Вам может снова понадобиться ваша старая фабрика позже в игре. Старайтесь планировать фабрику, чтобы она могла быть повторно использована. - Иногда, вы можете найти необходимую фигуру на карте, вместо того, чтобы - создавать ее самостоятельно. + создавать её самостоятельно. - Полноценные мельницы/вертушки никогда не генерируются натурально. - - Окрашивайте свои фигуры, прежде чем разрезать для максимальной - эффективности. + - Для максимальной эффективности окрашивайте свои фигуры, прежде чем + разрезать. - С модулями теряется восприятие пространства; забота смертных. - Создайте отдельную фабрику чертежей. Они очень важны для модулей. - Взгляните внимательнее на смешиватель и вы найдете ответы на свои вопросы. - - With modules, space is merely a perception; a concern for mortal men. - - Строительство вблизи ХАБ-а может помешать будущим проектам. - - Иконка булавки на каждой фигуре закрепляет ее на экране. - - Используйте <b>CTRL</b> + ЛКМ для выбора области. - - В вашем распоряжении бесконечная карта! Не загромождайте вашу фабрику, - расширяйтесь! + - Используйте <b>CTRL</b> + Потащить, чтобы выделить область + - Строительство вблизи ХАБ-а может помешать будущим фабрикам. + - Иконка булавки на каждой фигуре закрепляет её на экране. + - Смешайте все три цвета для получения белого. + - У вас есть бесконечная карта. Не зажимайте свою фабрику, расширяйтесь! - Также попробуйте Factorio. Это моя любимая игра. - - Резак(4 входа) разрезает по часовой стрелке, начиная с правой верхней + - Резак (4 входа) разрезает по часовой стрелке, начиная с правой верхней части! - Вы можете скачать свои сохранения в главном меню! - В этой игре множество полезных комбинаций клавиш. Загляните в настройки, чтобы ознакомиться с ними. - В этой игре множество настроек, не забудьте с ними ознакомиться. - - Маркер ХАБ-а имеет небольшой компас, указывающий его направление. + - Маркер ХАБ-а имеет небольшой компас, указывающий его местоположение. + - Для очистки конвейеров, вырежьте область и вставьте её в то же место. - Нажмите F4, чтобы показать FPS и Частоту Обновления. - Нажмите F4 дважды, чтобы показать координаты курсора и камеры. - - Вы можете нажать на закрепленную фигуру слева, чтобы открепить ее. - - Для очистки конвейеров, вырежьте область и вставьте её в то же место. + - Вы можете нажать на закрепленную фигуру слева, чтобы открепить её. +puzzleMenu: + play: Играть + edit: Редактировать + title: Режим головоломок + createPuzzle: Создать головоломку + loadPuzzle: Загрузить + reviewPuzzle: Просмотреть и опубликовать + validatingPuzzle: Подтверждение головоломки + submittingPuzzle: Отправка головоломки + noPuzzles: В данный момент в этом разделе нет головоломок. + categories: + levels: Уровни + new: Новые + top-rated: Популярные + mine: Мои головоломки + easy: Простые + hard: Сложные + completed: Завершенные + medium: Средние + official: Официальные + trending: Популярные сегодня + trending-weekly: Популярные за неделю + categories: Категории + difficulties: По сложности + account: Мои головоломки + search: Поиск + validation: + title: Недействительная головоломка + noProducers: Пожалуйста, разместисте постоянный производитель! + noGoalAcceptors: Пожалуйста, разместите приемник цели! + goalAcceptorNoItem: Одному или несколькоим приеминкам цели не назначен предмет. + Доставьте к ним фигуру, чтоб установить цель. + goalAcceptorRateNotMet: Один или несколько приемников цели не получают + достаточно предметов. Убедитесь, что индикаторы всех приемников + зеленые. + buildingOutOfBounds: Одно или несколько зданий находятся за пределами зоны + строительства. Либо увеличьте зону, либо удалите их. + autoComplete: Ваша головоломка завершится автоматически! Убедитесь, что ваши + постоянные производители не доставляют фигуры напрямую приемникам + цели. + difficulties: + easy: Легко + medium: Средне + hard: Сложно + unknown: Unrated + dlcHint: Уже купили DLC? Проверьте, что оно активировано, нажав правый клик на + shapez.io в своей библиотеке, и далее Свойства > Доп. Контент + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Вы слишком часто выполняете свои действия. Подождите немного. + invalid-api-key: Не удалось связаться с сервером, попробуйте + обновить/перезапустить игру (Invalid Api Key). + unauthorized: Не удалось связаться с сервером, попробуйте обновить/перезапустить + игру (Unauthorized). + bad-token: Не удалось связаться с сервером, попробуйте обновить/перезапустить + игру (Bad Token). + bad-id: Недействительный идентификатор головоломки. + not-found: Данная головломка не может быть найдена. + bad-category: Данная категория не может быть найдена. + bad-short-key: Данный короткий ключ недействителен. + profane-title: Название вашей головоломки содержит нецензурные слова. + bad-title-too-many-spaces: Название вашей головоломки слишком короткое. + bad-shape-key-in-emitter: Недопустимный предмет у постоянного производителя. + bad-shape-key-in-goal: Недопустимный предмет у применика цели. + no-emitters: Ваша головоломка не содержит постоянных производителей. + no-goals: Ваша головоломка не содержит приемников цели. + short-key-already-taken: Этот короткий ключ уже занят, используйте другой. + can-not-report-your-own-puzzle: Вы не можете пожаловаться на собственную головоломку. + bad-payload: Запрос содержит неверные данные. + bad-building-placement: Ваша головоломка содержит неверно размещенные здания. + timeout: Время ожидания запроса истекло. + too-many-likes-already: Головоломка уже заработала слишком много лайков. Если вы + все еще хотите удалить ее, обратитесь в support@shapez.io! + no-permission: У вас нет прав на выполнение этого действия. diff --git a/translations/base-sl.yaml b/translations/base-sl.yaml index 907aa1f5..ace5055d 100644 --- a/translations/base-sl.yaml +++ b/translations/base-sl.yaml @@ -14,39 +14,14 @@ steamPage: While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages - advantages: - - <b>12 New Level</b> for a total of 26 levels - - <b>18 New Buildings</b> for a fully automated factory! - - <b>Unlimited Upgrade Tiers</b> for many hours of fun! - - <b>Wires Update</b> for an entirely new dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. - - Be sure to check out my trello board for the full roadmap! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Loading error: Error @@ -78,6 +53,7 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Logging in demoBanners: title: Demo Version intro: Get the standalone to unlock all features! @@ -97,6 +73,12 @@ mainMenu: savegameLevel: Level <x> savegameLevelUnknown: Unknown Level savegameUnnamed: Unnamed + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -110,6 +92,9 @@ dialogs: viewUpdate: View Update showUpgrades: Show Upgrades showKeybindings: Show Keybindings + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Import Error text: "Failed to import your savegame:" @@ -207,6 +192,70 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Move @@ -228,6 +277,7 @@ ingame: clearSelection: Clear selection pipette: Pipette switchLayers: Switch layers + clearBelts: Clear belts colors: red: Red green: Green @@ -357,9 +407,6 @@ ingame: buildings: title: 18 New Buildings desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! upgrades: title: ∞ Upgrade Tiers desc: This demo version has only 5! @@ -375,6 +422,50 @@ ingame: support: title: Support me desc: I develop it in my spare time! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Belts, Distributor & Tunnels @@ -581,6 +672,18 @@ buildings: name: Item Producer description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Cutting Shapes @@ -691,8 +794,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the @@ -904,7 +1007,12 @@ settings: title: Map Resources Size description: Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Keybindings hint: "Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different @@ -978,6 +1086,15 @@ keybindings: comparator: Compare item_producer: Item Producer (Sandbox) copyWireValue: "Wires: Copy value below cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: About this Game body: >- @@ -1063,3 +1180,88 @@ tips: - Press F4 to show your FPS and Tick Rate. - Press F4 twice to show the tile of your mouse and camera. - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-sr.yaml b/translations/base-sr.yaml index 35f2c8ca..b0826a98 100644 --- a/translations/base-sr.yaml +++ b/translations/base-sr.yaml @@ -1,51 +1,25 @@ steamPage: shortText: shapez.io je igra o pravljenju fabrika za automatizaciju stvaranja i spajanja sve složenijih oblika na beskonačno velikoj mapi. - discordLinkShort: Official Discord + discordLinkShort: Oficijalni Diskord intro: >- - Shapez.io is a relaxed game in which you have to build factories for the - automated production of geometric shapes. + Shapez.io je opuštena igra u kojoj gradite fabrike za automatizaciju + proizvodnje geometrijskih oblika. - As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. + Kako se nivo povećava, oblici postaju sve složeniji, tako da morate da proširite fabriku na beskonačno velikoj mapi. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! + I ako sve to nije dovoljno, moraćete da proizvodite sve više i više oblika kako bi zadovoljili zahteve proizvodnje - jedina stvar koja pomaže je skaliranje! - While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! + Na početku je dovoljno samo da prerađujete oblike, ali kasnije morate da ih farbate - za ovaj posao morate da vadite i mešate boje! - Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages - advantages: - - <b>12 New Level</b> for a total of 26 levels - - <b>18 New Buildings</b> for a fully automated factory! - - <b>Unlimited Upgrade Tiers</b> for many hours of fun! - - <b>Wires Update</b> for an entirely new dimension! - - <b>Dark Mode</b>! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. - - Be sure to check out my trello board for the full roadmap! + Kupovinom ove igre na Steam-u dobijate pristup punoj verziji igre, ali prvo možete da odigrate probnu verziju na shapez.io pa onda da se odlučite kasnije! + what_others_say: Šta pričaju ljudi o shapez.io + nothernlion_comment: Igra je sjajna - vreme je proletelo, divno sam se proveo igrajući. + notch_comment: Dođavola. Stvarno bi trebao da spavam, ali mislim da sam upravo + shvatio kako da napravim računar u shapez.io + steam_review_comment: Ova igra mi je ukrala život i više ga ne želim nazad. + Veoma opuštena igra o građenju fabrika, koja me stalno tera da + prerađujem fabrike kako bi bile efikasnije. global: loading: Učitavanje error: Greška @@ -77,8 +51,9 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Prijavljivanje demoBanners: - title: Demo Verzija + title: Probna Verzija intro: Nabavite punu igru kako biste otključali sve funkcije! mainMenu: play: Igraj @@ -96,7 +71,13 @@ mainMenu: chrome. savegameLevel: Nivo <x> savegameLevelUnknown: Nepoznat Nivo - savegameUnnamed: Unnamed + savegameUnnamed: Neimenovano + puzzleMode: Slagalice + back: Nazad + puzzleDlcText: Uživate u optimizovanju i minimizovanju fabrika? Nabavite + ekspanziju sa Slagalicama na Steam-u, za još više zabave! + puzzleDlcWishlist: Dodaj na listu želja! + puzzleDlcViewNow: Pogledaj ekspanziju dialogs: buttons: ok: OK @@ -110,6 +91,9 @@ dialogs: viewUpdate: Pogledajte ažuriranje showUpgrades: Prikaži Nadogradnje showKeybindings: Prikaži podešavanje tastera + retry: Pokušaj ponovo + continue: Nastavi + playOffline: Igraj Oflajn importSavegameError: title: Greška prilikom uvoza text: "Neuspešan uvoz sačuvane igre:" @@ -121,9 +105,9 @@ dialogs: text: "Neuspešno učitavanje sačuvane igre:" confirmSavegameDelete: title: Potrvrdi brisanje - text: Are you sure you want to delete the following game?<br><br> - '<savegameName>' at level <savegameLevel><br><br> This can not be - undone! + text: Da li sigurno želite da obrišeš ovu sačuvanu igru?<br><br> + '<savegameName>' nivo <savegameLevel><br><br> Ne možete je vratiti + kasnije! savegameDeletionError: title: Greška prilikom brisanja text: "Neuspešno brisanje sačuvane igre:" @@ -142,16 +126,16 @@ dialogs: title: Podešavanja tastera su resetovana desc: Podešavanja tastera su resetovana na njihove početne vrednosti! featureRestriction: - title: Demo Verzija + title: Probna Verzija desc: Pokušali ste da pristupite funkciji (<feature>) koja nije dostupna u demo verziji. Za puno iskustvo, nabavite samostalnu igru! oneSavegameLimit: title: Ograničen broj sačuvanih igara - desc: Možete imati samo jednu sačuvanu igru u demo verziji. Izbrišite postojeću - ili nabavite samostalnu igru! + desc: Možete imati samo jednu sačuvanu igru u probnoj verziji. Izbrišite + postojeću ili nabavite samostalnu igru! updateSummary: title: Novo ažuriranje! - desc: "OVo su promene od zadnjeg igranja:" + desc: "Ovo su promene od zadnjeg igranja:" upgradesIntroduction: title: Oktključaj Nadogradnje desc: Svi oblici koje napravite mogu se iskoristiti za oktljučavanje nadogradnji @@ -182,31 +166,96 @@ dialogs: createMarker: title: Novi Putokaz titleEdit: Uredi Putokaz - desc: Give it a meaningful name, you can also include a <strong>short - key</strong> of a shape (Which you can generate <link>here</link>) + desc: Dajte mu neko smisleno ime, možete koristiti i <strong>kratak kod</strong> + oblika (Koji možete da generišete <link>ovde</link>) markerDemoLimit: - desc: U demo verziji možete imati samo dva putokaza istovremeno. Nabavite + desc: U probnoj verziji možete imati samo dva putokaza istovremeno. Nabavite samostalnu igru za beskonačno mnogo putokaza! exportScreenshotWarning: title: Izvezi sliku ekrana desc: Hoćete da izvezete sliku cele fabrike kao snimak ekrana. Ovaj proces može biti prilično spor za velike fabrike, može se desiti i pucanje igre! editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you - can generate <link>here</link>) + title: Postavi Signal + descItems: "Odaberite unapred definisan predmet:" + descShortKey: ... ili unesite <strong>kratak kod</strong> oblika (Koji možete da + generišete <link>ovde</link>) renameSavegame: - title: Rename Savegame - desc: You can rename your savegame here. + title: Preimenujte Sačuvanu igru + desc: Ovde možete preimenovati sačuvanu igru. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Tutorijal je dostpan + desc: Za ovaj nivo je dostupan video tutorijal! Da li želite da ga pogledate? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Tutoijal je dostupan + desc: Za ovaj nivo je dostupan video tutorijal, ali je na engleskom. Da li + želite da ga pogledate? + editConstantProducer: + title: Postavi Predmet + puzzleLoadFailed: + title: Učitavanje Slagalice nije uspelo + desc: "Nažalost slagalica nije mogla da se učita:" + submitPuzzle: + title: Podnesite Slagalicu + descName: "Dajte ime slagalici:" + descIcon: "Molimo da unesete kratak kod, koji će biti ikonica slagalice (Možete + generisati kod <link>ovde</link>, ili možete i da odaberete jedan od + nasumičnih preloženih oblika ispod):" + placeholderName: Naslov Slagalice + puzzleResizeBadBuildings: + title: Promena veličine nije moguća + desc: Ne možete da učinite zonu manjom, zato što će onda neke građevine biti van + zone. + puzzleLoadError: + title: Loša Slagalica + desc: "Učitavanje Slagalice nije uspelo:" + offlineMode: + title: Oflajn Režim + desc: Ne možemo da pristupimo serverima, zbog toga je igra u oflajn režimu. + Uverite se da imate aktivnu internet vezu. + puzzleDownloadError: + title: Greška prilikom preuzimanja + desc: "Preuzimanje slagalica nije uspelo:" + puzzleSubmitError: + title: Greška prilikom podnošenja + desc: "Greška prilikom podnoženja slagalice:" + puzzleSubmitOk: + title: Slagalica objavljena + desc: Čestitamo! Slagalica je objavljena i drugi igrači mogu da je igraju. + Možete je pronaći u delu "Moje slagalice". + puzzleCreateOffline: + title: Oflajn Režim + desc: Pošto ste u oflajn režimu, nećete moći da sačuvate i/ili objavljujete + slagalice. Da li ipak želite da nastavite? + puzzlePlayRegularRecommendation: + title: Preporuka + desc: <strong>Strogo</strong> preporučujemo da prvo odigrate normalnu igru do + nivoa 12 pre nego što krenete ekspanziju sa slagalicama, u protivnom + srešćete se nekim delovima igre koje niste videli do sad. Da li ipak + želite da nastavite? + puzzleShare: + title: Kratak kod je iskopiran + desc: Kratak kod ove slagalice (<key>) je iskopiran! Možete ga uneti u meni + slagalica da bi pristupili slagalici. + puzzleReport: + title: Prijavi Slagalicu + options: + profane: Ružne reči ili ponašanje + unsolvable: Nemoguće da se reši + trolling: Neozbiljna slagalica + puzzleReportComplete: + title: Hvala na povratnoj informaciji! + desc: Ova slagalica je označena. + puzzleReportError: + title: Neuspešno prijavljivanje slagalice + desc: "Zahtev za prijavljivanje slagalice nije mogao biti obrađen:" + puzzleLoadShortKey: + title: Unesite kratak kod + desc: Unesite kratak kod slagalice kako bi je učitali. + puzzleDelete: + title: Izbrišite Slagalicu? + desc: Da li sigurno želite da obrišete '<title>'? Ne možete da je vratite + kasnije! ingame: keybindingsOverlay: moveMap: Kretanje @@ -222,12 +271,13 @@ ingame: delete: Brisanje pasteLastBlueprint: Nalepi zadnji nacrt lockBeltDirection: Omogući planiranje traka - plannerSwitchSide: Okreni stranu planera + plannerSwitchSide: Okreni smer planera cutSelection: Izreži copySelection: Kopiraj clearSelection: Očisti odabir pipette: Pipeta switchLayers: Promeni sloj + clearBelts: Očisti trake colors: red: Crvena green: Zelena @@ -257,7 +307,7 @@ ingame: notifications: newUpgrade: Nova nadogradnja je dostupna! gameSaved: Igra je sačuvana. - freeplayLevelComplete: Level <level> has been completed! + freeplayLevelComplete: Završen Nivo <level>! shop: title: Nadogradnje buttonUnlock: Nadogradi @@ -315,66 +365,109 @@ ingame: pokretnih traka će ubrzati napredak do cilja.<br><br>Savet: Drži <strong>SHIFT</strong> za postavljanje više rudara istovremeno, a pritisni <strong>R</strong> za okretanje." - 2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two - halves!<br><br> PS: The cutter always cuts from <strong>top to - bottom</strong> regardless of its orientation." - 2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a - <strong>trash</strong> to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed - up this slow process!<br><br> PS: Use the <strong>0-9 - hotkeys</strong> to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4 - extractors</strong> and connect them to the hub.<br><br> PS: - Hold <strong>SHIFT</strong> while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some - <strong>circles</strong>, <strong>white</strong> and - <strong>red</strong> color! + 2_1_place_cutter: "Postavi <strong>Rezača</strong> kako bi presekao krug na dve + polovine!<br><br> PS: Rezač uvek reže od <strong>vrha ka + dnu</strong> bez obzira na njegovu orijentaciju." + 2_2_place_trash: Rezač može da se <strong>začepi i stane sa + radom</strong>!<br><br> Koristite <strong>smeće</strong> kako bi + se rešili trenutno (!) neželjenog otpada. + 2_3_more_cutters: "Super! Postavi još <strong>2 rezača</strong> kako bi ubrzali + ovaj ovaj spor proces!<br><br> PS: Koristite <strong>prečice + 0-9</strong> koje brže pristupaju građevinama!" + 3_1_rectangles: "Hajdemo sada da iskopamo pravougaonike! <strong>Postavi 4 + rudara</strong> i poveži ih na središte.<br><br> PS: Zadrži + <strong>SHIFT</strong> dok prevlačiš pokretne trake kako bi + aktivirao planiranje traka!" + 21_1_place_quad_painter: Postavi <strong>četvorostrukog farbača</strong> i oboji + <strong>krugove</strong> u <strong>belu</strong> and + <strong>crvenu</strong> boju! 21_2_switch_to_wires: Switch to the wires layer by pressing <strong>E</strong>!<br><br> Then <strong>connect all four inputs</strong> of the painter with cables! - 21_3_place_button: Awesome! Now place a <strong>Switch</strong> and connect it - with wires! - 21_4_press_button: "Press the switch to make it <strong>emit a truthy - signal</strong> and thus activate the painter.<br><br> PS: You - don't have to connect all inputs! Try wiring only two." + 21_3_place_button: Fenomenalno! Sada postavi <strong>Prekidač</strong> i poveži + ga žicama! + 21_4_press_button: "Kako bi aktivirao farbača, pritisni prekidač i on <strong>će + emitovati tačan signal</strong> i tim signalom će pokrenuti + farbanje.<br><br> PS: Ne morate da povežete sve ulaze! Za sada + probajte samo dva." connectedMiners: - one_miner: 1 Miner - n_miners: <amount> Miners - limited_items: Limited to <max_throughput> + one_miner: 1 Rudar + n_miners: <amount> Rudara + limited_items: Ograničeno na <max_throughput> watermark: - title: Demo version - desc: Click here to see the Steam version advantages! - get_on_steam: Get on steam + title: Probna Verzija + desc: Kliknite ovde da pogledate prednosti Steam verzije! + get_on_steam: Nabavite na Steam-u standaloneAdvantages: - title: Get the full version! - no_thanks: No, thanks! + title: Nabavite punu verziju! + no_thanks: Neka, hvala! points: levels: - title: 12 New Levels - desc: For a total of 26 levels! + title: 12 Novih Nivoa + desc: Ukupno 26 nivoa! buildings: - title: 18 New Buildings - desc: Fully automate your factory! - savegames: - title: ∞ Savegames - desc: As many as your heart desires! + title: 18 Novih Građevina + desc: U potpunosti automatizujte fabriku! upgrades: - title: ∞ Upgrade Tiers - desc: This demo version has only 5! + title: ∞ Redova Nadogradnje + desc: Probna verzija ima samo 5! markers: - title: ∞ Markers - desc: Never get lost in your factory! + title: ∞ Putokaza + desc: Nikada se nećete izgubiti u fabrici! wires: - title: Wires - desc: An entirely new dimension! + title: Žice + desc: Potpuno nova dimenzija! darkmode: - title: Dark Mode - desc: Stop hurting your eyes! + title: Tamna Tema + desc: Recite stop bolu u očima! support: - title: Support me - desc: I develop it in my spare time! + title: Podržite me + desc: Razvijam igru u slobodno vreme! + achievements: + title: Dostignuća + desc: Osvojite ih sve! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Širina + zoneHeight: Visina + trimZone: Skrati + clearItems: Očisti Predmete + share: Podeli + report: Prijavi + clearBuildings: Očisti Građevine + resetPuzzle: Restartuj Slagalicu + puzzleEditorControls: + title: Kreator Slagalica + instructions: + - 1. Postavite <strong>Stalni Proizvođač</strong> kako bi kasnije + pružili oblike i boje igraču + - 2. Napravite jedan ili više oblika koje želite da igrač napravi i + dostavite ga jednom ili više <strong>Ciljnih Blokova</strong> + - 3. Nakon što Ciljni Blok primi određeni oblik na određeno vreme, + on taj oblik <strong>sačuva kao njegov cilj</strong> koji igrač + mora da proizvede kasnije (Naznačeno <strong>zelenom + značkom</strong>). + - 4. Klikom na <strong>dugme za zaključavanje</strong> na građevini + je onemogućujete. + - 5. Kada kliknete na oceni, slagalica će biti proverena i onda je + možete objaviti. + - 6. Nakon objavljivanja, <strong>sve građevine će biti + obrisane</strong> osim Stalnih Proizvođača i Ciljnih Blokova - To + je deo koji igrač treba samostalno da reši :) + puzzleCompletion: + title: Završena Slagalica! + titleLike: "Klikni na srce ako ti se svidela slagalica:" + titleRating: Koliko ti je bila teška ova slagalica? + titleRatingDesc: Vaša ocena nam pomaže u boljem preporučivanju slagalica + continueBtn: Nastavi da igraš + menuBtn: Meni + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Autor + shortKey: Kratak kod + rating: Težina + averageDuration: Prosečno trajanje + completionRate: Stopa završavanja shopUpgrades: belt: name: Trake, Delioci i Tuneli @@ -392,28 +485,28 @@ buildings: hub: deliver: Dostavite toUnlock: kako bi otključali - levelShortcut: LVL - endOfDemo: End of Demo + levelShortcut: Nivo + endOfDemo: Kraj probne verzije belt: default: name: Pokretna traka - description: Prenosi predmete, drži i prevuci za postavku više njih. + description: Prenosi predmete, drži i prevuci za postavljanje više njih. wire: default: name: Žica description: Omogućava prenos energije. second: - name: Wire - description: Transfers signals, which can be items, colors or booleans (1 / 0). - Different colored wires do not connect. + name: Žica + description: Prenosi signale, koji mogu biti boje ili da/ne vrednosti (1 / 0). + Žice različitih boja se ne mogu povezati. miner: default: name: Rudar description: Postavite ga na oblik koji želite da iskopate. chainable: name: Rudar (Lančani) - description: Postavite ga na oblik koji želite da iskopate. Mogu se ređati jedan - u drugi. + description: Postavite ga na oblik koji želite da iskopate. Mogu se lančano + povezati jedan za drugim. underground_belt: default: name: Tunel @@ -425,12 +518,12 @@ buildings: default: name: Rezač description: Reže oblike od vrha prema dnu i na izlaze daje obe polovine. - <strong>Ako se koristi samo jedan deo, drugi se mora uništiti da - bi se sprečio zastoj!</strong> + <strong>Ako se koristi samo jedan deo, drugi se mora uništiti + kako bi sprečili zastoj!</strong> quad: name: Rezač (četvorostruki) description: Reže oblike na četiri dela. <strong>Ako se koristi samo jedan deo, - ostali se moraju uništiti da bi se sprečio zastoj!</strong> + ostali se moraju uništiti kako bi sprečili zastoj!</strong> rotater: default: name: Obrtač (↻) @@ -439,8 +532,8 @@ buildings: name: Obrtač (↺) description: Okreće oblike za 90 stepeni u smeru suprotnom od kazaljke na satu. rotate180: - name: Rotate (180) - description: Rotates shapes by 180 degrees. + name: Obrtač (180) + description: Okreće oblike za 180 stepeni. stacker: default: name: Slagač @@ -448,7 +541,7 @@ buildings: oblik se postavlja na vrh levog. mixer: default: - name: Mešalica boja + name: Mešalica za boje description: Spaja dve boje koristeći aditivno mešanje boja. painter: default: @@ -462,132 +555,145 @@ buildings: description: Farba ceo oblik na levom ulazu bojom sa gornjeg ulaza. quad: name: Farbač (četvorostruki) - description: Allows you to color each quadrant of the shape individually. Only - slots with a <strong>truthy signal</strong> on the wires layer - will be painted! + description: Omoćugava da ofarbate svaku četvrtinu oblika zasebno. Samo delovi + sa <strong>tačnim signalom</strong> na sloju žica će biti + ofarbati! trash: default: name: Smeće - description: Prima stvar sa svih strana i zauvek ih uništava. + description: Prima stvari sa svih strana i zauvek ih uništava. balancer: default: - name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + name: Balanser + description: Ravnomerno raspoređuje sve ulaze na sve izlaze. merger: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Spajač (kompaktni) + description: Spaja dve pokretne trake u jednu. merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Spajač (kompaktni) + description: Spaja dve pokretne trake u jednu. splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Delilac (kompaktni) + description: Deli jednu pokretnu traku na dve. splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Delilac (kompaktni) + description: Deli jednu pokretnu traku na dve. storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: Skladište + description: Skladišti višak predmeta dok ne dostigne maksimalni kapacitet. + Prioritet daje levom izlazu i može se koristiti kao kapija za + prelivanje. wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: Žičani Preklopnik + description: Omogućava dvema različitim žicama da se ukrste, bez povezivanja. constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: Konstantan Signal + description: Emituje konstantan signal, koji može bili ili oblik ili boja ili + da/ne vrednost (1 / 0). lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: Prekidač + description: Može biti podešen da emituje da/ne vrednost (1 / 0) na sloju žica, + koja posle može biti korišćena za npr. filter predmeta. logic_gate: default: - name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + name: I Kapija + description: Emituje da/ne vrednost "1" ako su oba ulaza tačna. (Tačno znači + oblik, boja or da/ne vrednost "1") not: - name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + name: NE Kapija + description: Emituje da/ne vrednost "1" ako ulaz nije tačan. (Tačan znači oblik, + boja ili da/ne vrednost "1") xor: - name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + name: EKSILI Kapija + description: Emituje da/ne vrednost "1" ako je jedan od ulaza tačan, ali ne oba. + (Tačan znači oblik, boja ili da/ne vrednost "1") or: - name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + name: ILI Kapija + description: Emituje da/ne vrednost "1" ako je jedan od ulaza tačan. (Tačan + znači oblik, boja ili da/ne vrednost "1") transistor: default: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: Tranzistor + description: Prosleđuje donji ulaz ako je ulaz sa strane tačan (oblik, boja ili + "1"). mirrored: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: Tranzistor + description: Prosleđuje donji ulaz ako je ulaz sa strane tačan (oblik, boja ili + "1"). filter: default: name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + description: Povežite signal kako bi usmerili sve predmete koji se poklapaju na + gornji izlaz, a ostatak odlazi na desni izlaz. Može biti + kontrolisano preko da/ne signala. display: default: - name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + name: Displej + description: Povežite signal na displej i on će biti prikazan na njemu - Signal + može biti oblik, boja ili da/ne vrednost. reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: Čitač Trake + description: Meri propusnost pokretne trake. Na žičanom sloju, na izlaz šalje + poslednje pročitani predmet (tek kada se otključa). analyzer: default: - name: Shape Analyzer - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + name: Analizator Oblika + description: Analizira gornju desnu četvrtinu najnižeg sloja oblika i vraća + njegov oblik i boju. comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: Upoređivač + description: Vraća da/ne vrednost "1" ako su oba ulazna signala jednaka. Mogu se + porediti oblici, predmeti i da/ne vrednosti. virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: Virtuelni Rezač + description: Virtuelno reže oblik na dve polovine. rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: Virtuelni Obrtač + description: Virtuelno okreće oblike, i u smeru kazaljke na satu i suprotno od + smera kazaljke na satu. unstacker: - name: Virtual Unstacker - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + name: Virtuelni Razlagač + description: Virtuelno razlaže najviši sloj oblika i šalje ga desni izlaz, a + ostatak šalje na levi izlaz. stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: Virtualni Slagač + description: Virtuelno slaže oblik sa desnog ulaza na oblik sa levog ulaza. painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: Virtual Farbač + description: Virtuelno farba oblik sa donjeg ulaza sa oblikom sa desnog ulaza. item_producer: default: - name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + name: Proizvođač predmeta + description: Dostupan samo u Sandbox režimu, na izlaz šalje ulazni signal sa + žičanog sloja na običan sloj. + constant_producer: + default: + name: Stalni Proizvođač + description: Konstantno na izlaz šalje odabrani oblik ili boju. + goal_acceptor: + default: + name: Ciljni Blok + description: Dostavite oblike u ciljni blok kako bi ih postavili kao cilj. + block: + default: + name: Blok + description: Može da blokira polje. storyRewards: reward_cutter_and_trash: title: Rezanje Oblika - desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half - from top to bottom <strong>regardless of its - orientation</strong>!<br><br>Be sure to get rid of the waste, or - otherwise <strong>it will clog and stall</strong> - For this purpose - I have given you the <strong>trash</strong>, which destroys - everything you put into it! + desc: <strong>Rezač</strong> je otključan, on reže oblike na dva dela od vrha + prema dnu <strong>bez obzira na njegovu + orijentaciju</strong>!<br><br>Obavezno se rešite ostatka, ili će u + suprotnom će se<strong>začepiti i stati sa radom</strong> - Baš zbog + toga imate <strong>Smeće</strong>, koje uništava sve što uđe u + njega! reward_rotater: title: Obrtanje desc: <strong>Obrtač</strong> je otključan! On okreće oblike za 90 stepeni u @@ -596,7 +702,7 @@ storyRewards: title: Farbanje desc: "<strong>Farbač</strong> je otključan - Boja se (kao i oblici) može rudariti i spojiti s oblikom u farbaču!<br><br>PS: Postoji - <strong>opcija za daltonizam</strong> u podešavanjima!" + <strong>opcija za daltoniste</strong> u podešavanjima!" reward_mixer: title: Mešalica boja desc: <strong>Mešalica boja</strong> je otključana - Ona spaja dve boje @@ -643,9 +749,9 @@ storyRewards: odjednom</strong> po ceni jedne boje umesto dve! reward_storage: title: Skladište - desc: You have unlocked the <strong>storage</strong> building - It allows you to - store items up to a given capacity!<br><br> It priorities the left - output, so you can also use it as an <strong>overflow gate</strong>! + desc: <strong>Skladište</strong> je otključano - Omogućava skadištenje predmeta + dok ne dostigne maksimalni kapacitet!<br><br> Prioritet daje levom + izlazu, može se koristiti kao <strong>kapija za prelivanje</strong>! reward_freeplay: title: Slobodna Igra desc: You did it! You unlocked the <strong>free-play mode</strong>! This means @@ -673,30 +779,29 @@ storyRewards: title: Sledeći Nivo desc: Svaka čast! Više sadržaja je u planu za samostalnu igru! reward_balancer: - title: Balancer - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + title: Balanser + desc: <strong>Balanser</strong> je otključan - Može da se koristi pri izgradnji + većih fabrika tako što <strong>deli i spaja predmete</strong> na + više traka! reward_merger: - title: Compact Merger - desc: You have unlocked a <strong>merger</strong> variant of the - <strong>balancer</strong> - It accepts two inputs and merges them - into one belt! + title: Kompaktni Spajač + desc: Varijacija <strong>balansera</strong>, odnosno <strong>spajač</strong> je + otključan! On prima dva ulaza i spaja ih u jednu traku! reward_belt_reader: - title: Belt reader - desc: You have now unlocked the <strong>belt reader</strong>! It allows you to - measure the throughput of a belt.<br><br>And wait until you unlock - wires - then it gets really useful! + title: Čitač Trake + desc: <strong>Čitač Trake</strong> je otključan! On meri propusnost pokretne + trake.<br><br>Biće vam od velike pomoći, samo se stripite dok ne + otključate žice! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: Obrtač (180 stepeni) + desc: Otključali ste <strong>obrtač</strong> od 180 stepeni! - On može da okreće + oblike za 180 stepeni (Iznenađenje! :D) reward_display: - title: Display - desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the - wires layer to visualize it!<br><br> PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + title: Displej + desc: "<strong>Displej</strong> je otključan - Povežite signal na žičanom sloju + kako bi ga displej prikazao!<br><br> PS: Da li ste primetili da + čitač trake i skladište na izlaz šalju poslednje prošitani predmet? + Probajte da ih prikažete na displeju!" reward_constant_signal: title: Constant Signal desc: You unlocked the <strong>constant signal</strong> building on the wires @@ -705,11 +810,11 @@ storyRewards: <strong>shape</strong>, <strong>color</strong> or <strong>boolean</strong> (1 / 0). reward_logic_gates: - title: Logic Gates - desc: You unlocked <strong>logic gates</strong>! You don't have to be excited - about this, but it's actually super cool!<br><br> With those gates - you can now compute AND, OR, XOR and NOT operations.<br><br> As a - bonus on top I also just gave you a <strong>transistor</strong>! + title: Logičke Kapije + desc: <strong>Logičke Kapije</strong> su otključane! You don't have to be + excited about this, but it's actually super cool!<br><br> Pomoću + ovih kapija možete da radite I, ILI, NE i EKSILI operacije.<br><br> + Kao šlag na tortu, dobijate i <strong>Tranzistor</strong>! reward_virtual_processing: title: Virtual Processing desc: I just gave a whole bunch of new buildings which allow you to @@ -736,15 +841,15 @@ storyRewards: signal from the wires layer or not.<br><br> You can also pass in a boolean signal (1 / 0) to entirely activate or disable it. reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: Kraj probne verzije + desc: Došli ste do kraja probne verzije! settings: title: Podešavanja categories: - general: General - userInterface: User Interface - advanced: Advanced - performance: Performance + general: Opšta + userInterface: Korisnički Interfejs + advanced: Napredna + performance: Performanse versionBadges: dev: Razvoj staging: Skela @@ -818,9 +923,11 @@ settings: dark: Tamna light: Svetla refreshRate: - title: Simulacija na 144 Hz - description: Opcija za monitore visoke frekvencije osvežavanja. Ovo može - smanjiti FPS ako je vaš računar prespor. + title: Brzina Otkucaja + description: Podešava koliko se otkucaja u igri dešavaju u jednoj sekundi. + Uglavnom, veći broj otkucaja znači veća preciznost ali gori + performans. Kod manjeg broja otkucaja propusnost ne mora biti + tačna. alwaysMultiplace: title: Višestruko Postavljanje description: Ako je omogućeno, sve građevine će ostati odabrane nakon što su @@ -842,7 +949,7 @@ settings: čitljiviji. rotationByBuilding: title: Okretanje prema vrsti građevine - description: Svaka građevina pamti smer na koji je bila okrenuta. Ova opcija je + description: Svaka građevina pamti smer na koji je bila okrenuta. Ova opcija se preporučuje ako često menjate vrste građevina koje postavljate. compactBuildingInfo: title: Skraćene Informacije o Građevinama @@ -853,56 +960,62 @@ settings: description: Onemogućuje upozorenje koje se javlja kada režete/brišete više od 100 stvari. soundVolume: - title: Sound Volume - description: Set the volume for sound effects + title: Jačina Zvuka + description: Podesite jačinu zvučnih efekata. musicVolume: - title: Music Volume - description: Set the volume for music + title: Jačina Muzike + description: Podesite jačinu muzike. lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: Mapa Manjeg Kvaliteta + description: Ova opcija pojednostavljuje simbole na mapi kada su zumirani kako + bi poboljšala performanse. Nekima izgledaju lepše, tako da + slobodno možete da probate! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: Onemogući Mrežu + description: Ova opcija onemogućuje mrežu sa poljima i može poboljšati + performans. Nekima ovo izgleda lepše! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: Očistite kursor/strelicu desnim klikom + description: Uobičajeno je omogućena ova opcija, briše sa kursora/strelice + trenutno odabranu građevinu. Ako je ova opcija onemogućena, + možete očistiti kursor/strelicu desnim klikom dok postavljate + građevinu. lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: Teksture niskog kvaliteta (Ružno) + description: Da bi poboljšala performanse igra će koristiti teksture niskog + kvaliteta. Zbog ovoga će igra izgledati baš ružno! displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: Prikazati Ivice Regija + description: Igra je podeljena u regije od 16x16 polja, ako uključite ovu opciju + ivice ovih regija postaće vidljive. pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: Odaberi rudara na rudama + description: Uobičajeno je omogućena ova opcija, kada pipetom odaberete neku + rudu, rudar će automatski biti odabran. simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: Pojednostavljene Pokretne Trake (Ružno) + description: Ne prikazuje predmete na pokretnoj traci. Predmete možete videti + ako pređete mišem preko trake. Ova opcija povećava persormans, + ali nije preporučljivo da igrate igru sa ovom opcijom + omogućenom, osim ako vam je performans prejako potreban. enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: Omogučite kretanje po mapi mišem + description: Omogućava kreatanje po mapi pomeranjem kursora/strelice ivicama + ekrana. Brzina kretanja zavisi od opcije Brzina kretanja. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Zumiraj prema kursoru/strelici + description: Ako je ova opcija odabrana, zumiranje će se vršiti u smeru + kursora/strelice, u suprotnom vrši se prema centru ekrana. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Veličina simbola na mapi + description: Kontroliše veličinu simbola na mapi (kada se vrši odzumiranje + mape). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Tasteri hint: "Savet: Koristite CTRL, SHIFT i ALT! Oni omogućuju razne opcije @@ -945,6 +1058,23 @@ keybindings: painter: Farbač trash: Smeće wire: Žica + balancer: Balanser + storage: Skladište + constant_signal: Konstantan Signal + logic_gate: Logička Kapija + lever: Prekidač (regularan) + filter: Filter + wire_tunnel: Žičani Preklopnik + display: Displej + reader: Čitač Trake + virtual_processor: Virtuelni Rezač + transistor: Transistor + analyzer: Analizator Oblika + comparator: Upoređivač + item_producer: Proizvođač predmeta (Sandbox režim) + constant_producer: Stalni Proizvođač + goal_acceptor: Ciljni Blok + block: Blok pipette: Pipeta rotateWhilePlacing: Okreni građevinu rotateInverseModifier: "Modifikator: Rotiraj u smeru suprotnom od kazaljke na satu" @@ -954,28 +1084,20 @@ keybindings: cycleBuildings: Promena Građevine lockBeltDirection: Omogući planer pokretnih traka switchDirectionLockSide: "Planer: Okreni stranu" - massSelectStart: Pritisni i zadrži za za početak + massSelectStart: Pritisni i zadrži za početak massSelectSelectMultiple: Odabir više oblasti massSelectCopy: Kopiranje oblasti massSelectCut: Izrezivanje oblasti placementDisableAutoOrientation: Onemogućite automatsku orijentaciju placeMultiple: Ostanite u modu za postavljanje placeInverse: Automatski okreni orijentaciju pokretnih traka - balancer: Balancer - storage: Storage - constant_signal: Constant Signal - logic_gate: Logic Gate - lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing - display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare - item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + copyWireValue: "Žice: Kopiraj vrednost ispod kursora/strelice" + rotateToUp: "Obrtač: Gleda Gore" + rotateToDown: "Obrtač: Gleda Dole" + rotateToRight: "Obrtač: Gleda Desno" + rotateToLeft: "Obrtač: Gleda Levo" + massSelectClear: Očisti trake + showShapeTooltip: Show shape output tooltip about: title: O Igri body: >- @@ -987,7 +1109,7 @@ about: Bez odlične Discord zajednice ova igra, kao ni druge, ne bi postojala - Pridružite se <a href="<discordlink>" target="_blank">Discord serveru</a>!<br><br> - <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> je komponovao muziku za igru - On je super.<br><br> + <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> je komponovao muziku za igru - super lik.<br><br> Na kraju svega, veliko hvala mom najboljem prijatelju <a href="https://github.com/niklas-dahl" target="_blank">Niklas-u</a> - Bez naših factorio sesija, ova igra nikad ne bi postojala. changelog: @@ -1001,63 +1123,156 @@ demo: exportingBase: Izvoz slike cele fabrike kao snimak ekrana settingNotAvailable: Nije dostupno u demo verziji. tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing <b>R</b>. - - Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use <b>T</b> to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with <b>T</b> - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding <b>SHIFT</b> will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding <b>CTRL</b> allows to place multiple buildings. - - You can hold <b>ALT</b> to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use <b>CTRL</b> + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - Središte prihvata oblike bilo koje vrste, ne samo trenutni oblik! + - Pravite modularne fabrike koje se mogu lako proširiti - isplatiće se + kasnije! + - Izbegavajte gradnju fabrike u blizini središta ili će biti vrlo gusto! + - Ako slaganje oblika ne radi funkcioniše, probajte da zamenite ulaze. + - Možete da promenite smer planera pritiskom na <b>R</b>. + - Držanjem tastera <b>CTRL</b> omogućava prevlačenje trakama bez automatske + orijentacije. + - Odnosi ostaju isti, sve dok su sve nadogradnje na istom nivou. + - Serijsko izvršavanje je efikasnije od paralelnog. + - Kasnije u igri ćete otključati još varijanti građevina! + - Možete koristiti <b>T</b> za menjanje izmežu različitih varijanti + građevina. + - Simetrija je ključna! + - Možete izmešati tunele različitih redova u jednu liniju. + - Pokušajte da gradite kompaktne fabrike - isplatiće se kasnije! + - Farbač ima drugu varijantu koju možete odabrati pritiskom na <b>T</b> + - Pravilni odnosi povećavaju efikasnost. + - Na maksimalnom nivou, 5 rudara su dovoljna da napune jednu traku. + - Ne zaboravite tunele! + - Ne morate ravnomerno da delite predmete za potpunu efikasnost. + - Držanjem tastera <b>SHIFT</b> aktiviraćete planer traka, koji omogućava + postavljanje dugačkih linija traka sa lakoćom. + - Rezači uvek seku vertikalno, bez obzira na njihovu orijentaciju. + - Bela boja je mešavina svih boja. + - Bafer skladišta daje prioritet prvom izlazu. + - Uložite vreme u izgradnju dizajna koji se ponavljaju - vredeće! + - Držanjem tastera <b>CTRL</b> možete postavljati veći broj građevina + odjednom. + - Držanjem tastera <b>ALT</b> možete promeniti smer postavljenih traka. + - Efikasnost je ključna! + - Rude koje dalje od središta su komplikovanije. + - Mašine imaju ograničenu brzinu, podelite ih zarad maksimalne efikasnosti. + - Koristite balansere kako bi povećali efikasnost. + - Organizacija je bitna. Pokušajte da smanjite ukrštanje pokretnih traka. + - Planirajte unapred ili će sve postati gusto! + - Ne uklanjajte stare fabrike! Biće vam potrebne za otključavanje + nadogradnji. + - Pokušajte da samostalno završite 20-ti nivo, pre nego što zatražite pomoć! + - Ne komplikujte stvari, pokušajte da pravite što jednostavnije fabrike. + - Možda ćete kasnije morati ponovo da koristite fabrike. Isplanirajte ih + tako da budu ponovo upotrebljive. + - Ponekad možete da nađete potreban oblik na mapi, bez da ga pravite + slagačima. + - Kompletne vetrenjače se ne mogu naći na mapi. + - Obojite oblike pre rezanja za maksimalnu efikasnost. + - Koristite module! + - Napravite posebnu fabriku za nacrte, bitna je za module. + - Pažljivo pogledajte sličicu na mešalici boja, ako imate problema sa bojama. + - Držite taster <b>CTRL</b> i prevucite klikom miša kako bi izabrali oblast. + - Izgradnja blizu središta može smetati kasnijim fabrikama. + - Špenadla pored svakog oblika u listi nadogradnji će taj oblik zakačiti na + ekran. + - Pomešajte sve osnovne boje kako bi dobili belu boju! + - Mapa je beskonačno velika, izbegavajte pravljenje skučenih fabrika, + proširite se! + - Takođe probajte Factorio! To mi je omiljena igra. + - Četvorostruki rezač reže u smeru kazaljke na satu počevši od gornje deve + četvrtine! + - Možete da preuzmete sačuvane igre u glavnom meniju! + - Ova igra ima dosta korisnih prečica! Obavezno pogledajte podešavanja. + - Ova igra ima dosta podešavanja, obavezno bacite pogled na njih! + - Putokaz čvorišta ima mali kompas koji pokazuje smer čvorišta! + - Da bi očistili trake, izrežite oblast i onda je nalepite na isto mesto. + - Pritisnite F4 kako bi prikazali FPS i Brzinu Otkucaja. + - Pritisnite dvaput F4 kako bi prikazali lokaciju polja miša i kamere. + - Možete kliknuti na zakačen oblik na levi krstić kako bi ga otkačili. +puzzleMenu: + play: Igraj + edit: Uredi + title: Slagalice + createPuzzle: Kreiraj Slagalicu + loadPuzzle: Učitaj + reviewPuzzle: Oceni & Objavi + validatingPuzzle: Proveravanje Slagalice + submittingPuzzle: Podnošenje Slagalice + noPuzzles: Trenutno nemate slagalica ovde. + categories: + levels: Nivoi + new: Novo + top-rated: Najbolje ocenjene + mine: Moje Slagalice + easy: Lako + hard: Teško + completed: Završeno + medium: Srednje + official: Oficijalno + trending: Popularno danas + trending-weekly: Popularno nedeljno + categories: Kategorije + difficulties: Po težini + account: Moje Slagalice + search: Pretraga + validation: + title: Slagalica nije validna! + noProducers: Postavite Stalnog Proizvođača! + noGoalAcceptors: Postavite Ciljni Blok! + goalAcceptorNoItem: Jedan ili više Ciljnih Blokova još uvek nemaju dodeljen + predmet. Dostavite oblik kako bi ga postavili kao cilj. + goalAcceptorRateNotMet: Jedan ili više Ciljnih Blokova ne dobijaju dovoljno + predmeta. Budite sigurni da su indikatori zeleni za sve ove blokove. + buildingOutOfBounds: Jedna ili više građevina su van zone izgradnje. Ili + povećajte zonu ili uklonite te građevine. + autoComplete: Vaša slagalica se završava automatski! Uverite se da stalni + proizvođači ne isporučuju direktno ciljnim blokovima. + difficulties: + easy: Lako + medium: Srednje + hard: Teško + unknown: Unrated + dlcHint: Već imate kupljenu ekspanziju? Desnim klikom na shapez.io u vašoj + biblioteci, nakon toga na Properties > DLCs, proverite da li je + aktivirana. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: Previše često pokušavate nešto. Sačekajte malo. + invalid-api-key: Komunikacija sa pozadinskim serverom nije uspela, pokušajte da + ažurirate/restartujete igru (Nevažeći Api Ključ). + unauthorized: Komunikacija sa pozadinskim serverom nije uspela, pokušajte da + ažurirate/restartujete igru (Neovlašćeno). + bad-token: Komunikacija sa pozadinskim serverom nije uspela, pokušajte da + ažurirate/restartujete igru (Loš Token). + bad-id: Nevažeći identifikator slagalice. + not-found: Nije moguće pronaći datu slagalicu. + bad-category: Nije moguće pronaći datu kategoriju. + bad-short-key: Navedeni kratki ključ nije važeći. + profane-title: Vaša slagalica sadrži ružne reči. + bad-title-too-many-spaces: Naslov slagalice je previše kratak. + bad-shape-key-in-emitter: Nevalidan predmet u stalnom proizvođaču. + bad-shape-key-in-goal: Nevalidan predmet u ciljnom bloku. + no-emitters: Slagalica ne sadrži nijedan stalni proizvođač. + no-goals: Slagalica ne sadrži nijedan ciljni blok. + short-key-already-taken: Ovaj kratak kod je već zauzet, molimo da odaberete drugi. + can-not-report-your-own-puzzle: Ne možete prijaviti lične slagalice. + bad-payload: Zahtev sadrži nevažeće podatke. + bad-building-placement: Slagalica sadrži nevažeće postavljene građevine. + timeout: Vreme za izvršenje zahteva je isteklo. + too-many-likes-already: Slagalica ima dosta lajkova. Ako i dalje želite da je + uklonite, molimo da kontaktirate support@shapez.io! + no-permission: Nemate dozvolu za izvršenje ove radnje. diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index 8083c8d1..4c1db212 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -1,55 +1,30 @@ steamPage: shortText: shapez.io är ett spel som går ut på att automatisera skapandet av former med ökande komplexitet inom den oändligt stora världen. - discordLinkShort: Officiel Discord + discordLinkShort: Officiell Discord intro: >- - Shapez.io is a relaxed game in which you have to build factories for the - automated production of geometric shapes. + Shapez.io är att avslappnat spel där man ska bygga fabriker för att + automatisera produktionen av geometriska former. - As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. + Formerna blir svårare och mer komplexa vartefter nivån ökar och du blir tvungen att sprida ut dig över den oändliga kartan. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! + Och som om det inte vore nog så som behöver du samtidigt producera exponentiellt mer för att mätta efterfrågan - den enda lösningar är att skala upp produktionen! - While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! + I början skapar man bara former, men senare behöver du även färga dem - för att uppnå detta behöver du samla och blanda färger! - Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages - advantages: - - <b>12 Nya nivåer</b> av totalt 26 nivåer! - - <b>18 Nya byggnader</b> för en fullt automatiserad fabrik! - - <b>20 Upgraderingsnivåer</b> för många roliga timmar! - - <b>Kabelupdatering</b> för en helt ny dimension! - - <b>Mörkt Läge</b>! - - Obegränsade sparningar! - - Obegränsade markeringar! - - Stötta mig! ❤️ - title_future: Planerat innehåll - planned: - - Planbibliotek (Standalone Exclusive) - - Steam prestationer - - Pusselläge - - Minimap - - Mods - - Sandlådeläge - - ... och mycket mer! - title_open_source: Detta spel har öppen källkod! - title_links: Länkar - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Källkod (GitHub) - translate: Översättningshjälp - text_open_source: >- - Vem som helst kan bidra, jag är aktivt involverad i gruppen - och försöker granska alla förslag och ta förslag och feedback - i åtanke där det är möjligt. - - Se till och kolla mitt trello board för hela roadmappen! + På Steam kan du köpa den fulla versionen av spelet, men du kan även spela demot på shapez.io först och bestämma dig senare! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Laddar - error: Error - thousandsDivider: . + error: Fel + thousandsDivider: " " decimalSeparator: "," suffix: thousands: k @@ -71,14 +46,15 @@ global: hoursAndMinutesShort: <hours>t <minutes>m xMinutes: <x> minuter keys: - tab: TAB + tab: TABB control: CTRL alt: ALT escape: ESC shift: SKIFT space: MELLANSLAG + loggingIn: Logging in demoBanners: - title: Demo Version + title: Demo-version intro: Skaffa den fristående versionen för att låsa upp alla funktioner! mainMenu: play: Spela @@ -87,16 +63,22 @@ mainMenu: openSourceHint: Detta spelet har öppen kod! discordLink: Officiell Discord Server helpTranslate: Hjälp till att översätta! - browserWarning: Förlåt, men det är känt att spelet spelar långsamt på din - browser! Skaffa den fristående versionen eller ladda ner Chrome för en - bättre upplevelse. + browserWarning: Förlåt, men det är känt att spelet spelar långsamt i din + webbläsare! Skaffa den fristående versionen eller ladda ned Chrome för + en bättre upplevelse. savegameLevel: Nivå <x> savegameLevelUnknown: Okänd Nivå continue: Fortsätt newGame: Nytt spel madeBy: Skapad av <author-link> subreddit: Reddit - savegameUnnamed: Unnamed + savegameUnnamed: Namnlöst + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: OK @@ -110,6 +92,9 @@ dialogs: viewUpdate: Se uppdateringar showUpgrades: Visa uppgraderingar showKeybindings: Visa tangentbindingar + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Importfel text: "Kunde inte importera sparfil:" @@ -176,8 +161,9 @@ dialogs: rullband.<br>" createMarker: title: Ny Markör - desc: Ge det ett meningsfullt namn, du kan också inkludera en <strong>kort - nyckel</strong> av en form (Som du kan generera <link>här</link>) + desc: Ge det ett meningsfullt namn, du kan också inkludera ett + <strong>kortkommando</strong> av en form (som du kan generera + <link>här</link>) titleEdit: Ändra Markör markerDemoLimit: desc: Du kan endast ha två markörer i demoversionen. Skaffa den fristående @@ -198,8 +184,8 @@ dialogs: editSignal: title: Sätt singal descItems: "Välj en förvald sak:" - descShortKey: ... eller skriv in <strong>kort nyckel</strong> av en form - (Som du kan generera <link>här</link>) + descShortKey: ... eller skriv in <strong>kortkommando</strong> av en form (Som + du kan generera <link>här</link>) renameSavegame: title: Byt namn på sparfil desc: Du kan byta namn på din sparfil här. @@ -210,6 +196,70 @@ dialogs: title: Handledning Tillgänglig desc: Det finns en handledningsvideo tillgänglig för denna nivå, men den är bara tillgänglig på engelska. Vill du se den? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: Flytta @@ -231,6 +281,7 @@ ingame: clearSelection: Rensa vald pipette: Pipett switchLayers: Byt lager + clearBelts: Clear belts buildingPlacement: cycleBuildingVariants: Tryck ned <key> För att bläddra igenom varianter. hotkeyLabel: "Snabbtangent: <key>" @@ -360,11 +411,8 @@ ingame: buildings: title: 18 nya byggnader! desc: Automatisera din fabrik fullkomligt! - savegames: - title: ∞ med sparfiler - desc: Så många som du bara vill! upgrades: - title: ∞ Upgrade Tiers + title: 1000 uppgraderingsnivåer desc: This demo version has only 5! markers: title: ∞ med markeringar! @@ -378,6 +426,50 @@ ingame: support: title: Stöd mig desc: Jag utvecklar det på min fritid! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Rullband, Distributörer & Tunnlar @@ -480,87 +572,87 @@ buildings: name: Balancer description: Multifunktionell - Distribuerar alla inflöden till alla utflöden. merger: - name: Merger (Kompakt) - description: Sammansätter två rullband till ett. + name: Merger (kompakt) + description: Sammanfogar två rullband till ett. merger-inverse: - name: Merger (Kompakt) - description: Sammansätter två rullband till ett. + name: Merger (kompakt) + description: Sammanfogar två rullband till ett. splitter: - name: Splitter (Kompakt) - description: Delar ett rullband till två. + name: Splitter (kompakt) + description: Delar upp ett rullband till två. splitter-inverse: - name: Splitter (Kompakt) - description: Delar ett rullband till två. + name: Splitter (kompakt) + description: Delar upp ett rullband till två. storage: default: name: Lagring - description: Lagra överflödiga saker, till en viss mängd. Prioriterar den vänstra - utflödet och kan användas som en överströmningsgrind. + description: Lagra överflödiga saker, till en viss mängd. Prioriterar det + vänstra utflödet och kan användas som en översvämningsgrind. wire_tunnel: default: name: Korsande sladdar description: Tillåter två sladdar att korsa varandra utan att koppla samman. constant_signal: default: - name: Konstant Signal - description: Avger en konstant signal, som kan vara en form, färg eller boolean (1 / 0). + name: Konstant signal + description: Avger en konstant signal, som kan vara en form, färg eller boolesk + (1 / 0). lever: default: - name: Signalknapp - description: Kan ställas om till att ge en booleansk singal (1 / 0) på sladdlagret, - vilket kan användas för att kontrollera till exempel ett sakfilter. + name: Brytare + description: Kan ställas att ge en boolesk signal (1 / 0) på kabellagret, vilket + till exempel kan användas för att kontrollera ett sakfilter. logic_gate: default: - name: AND Grind - description: Avger en booleansk "1" om båda inflöden är positiva. (positiva menas med former, - färger eller booleansk "1") + name: AND-grind + description: Avger en boolesk "1" om båda inflödena är positiva. (positiva menas + med former, färger eller boolesk "1") not: - name: NOT Grind - description: Avger en booleansk "1" om inflödet inte är positiv. (positiva menas med former, - färger eller booleansk "1") + name: NOT-grind + description: Avger en boolesk "1" om inflödet inte är positivt. (positivt menas + med former, färger eller boolesk "1") xor: - name: XOR Grind - description: - Avger en booleansk "1" om ett av inflöderna är positiv, dock inte om båda är positiva. - (Positiva menas med former, färger eller booleansk "1") + name: XOR-grind + description: Avger en boolesk "1" om bara ett av inflödena är positivt. (med + positivt menas former, färger eller boolesk "1") or: - name: OR Grind - description: Avger en booleansk "1" om ett av inflöderna är positiv. (positiva menas med former, - färger eller booleansk "1") + name: OR-grind + description: Avger en boolesk "1" om minst ett av inflödena är positivt. (med + positivt menas former, färger eller boolesk "1") transistor: default: name: Transistor - description: För fram det undre inflödet om sido inflödet är positivt (en form, - färg eller "1"). + description: Sänder vidare det undre inflödet om sido inflödet är positivt. (med + positivt menas former, färger eller boolesk "1") mirrored: name: Transistor - description: För fram det undre inflödet om sido inflödet är positivt (en form, - färg eller "1"). + description: Sänder vidare det undre inflödet om sido inflödet är positivt. (med + positivt menas former, färger eller boolesk "1") filter: default: name: Filter - description: Koppla en signal för att dirigera alla matchande objekt till toppen och - dem kvarvarande till höger. Kan kontrolleras med booleanska singaler också. + description: Anslut en signal för att dirigera alla matchande objekt till toppen + och resterande åt höger. Kan även styras med booleska signaler. display: default: name: Display - description: Koppla en singal för att visa den på displayen - Det kan vara en form, - färg eller boolean. + description: Anslut en singal för att visa den på displayen - Det kan vara en + form, färg eller boolesk. reader: default: name: Rullbandsläsare - description: Mäter den genomsnittliga rullbands genomströmningen. Läser ut det sist - lästa saken på sladdlagret (när det är upplåst). + description: Mäter den genomsnittliga rullbands genomströmningen. Sänder ut den + sista lästa saken på sladdlagret (när det är upplåst). analyzer: default: name: Formanalysator - description: Analyserar den övre högra kvadranten av formens lägsta lager - och returnerar sin form och färg. + description: Analyserar den övre högra kvadranten av formens lägsta lager och + returnerar dess form och färg. comparator: default: name: Jämför - description: Returnerar booleansk "1" om båda signalerna är exakt lika. Kan jämföra - former, saker och boolean. + description: Returnerar boolesk "1" om båda signalerna är exakt lika. Kan + jämföra former, saker och booleska. virtual_processor: default: name: Virtuell skärare @@ -570,20 +662,31 @@ buildings: description: Roterar virtuellt formen, både medurs och moturs. unstacker: name: Virtuell stapelupplösare - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + description: Lösgör virtuellt det översta lagret och sänder ut åt höger medan + resten sänds åt till vänster. stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: Virtuell staplare + description: Staplar virtuellt den högra formen ovanpå den vänstra. painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: Virtuell målare + description: Målar virtuellt formen underifrån med formen från höger. item_producer: default: name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + description: Endast tillgänglig i sandlådeläge, avger en given signal från + kabellagret till det vanliga lagret. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: reward_cutter_and_trash: title: Att klippa former @@ -912,7 +1015,12 @@ settings: title: Map Resources Size description: Controls the size of the shapes on the map overview (when zooming out). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: title: Snabbtangenter hint: "Tips: Se till att använda CTRL, SKIFT, och ALT! De låter dig använda @@ -986,6 +1094,15 @@ keybindings: comparator: Compare item_producer: Item Producer (Sandbox) copyWireValue: "Wires: Copy value below cursor" + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: Om detta spel body: >- @@ -1071,3 +1188,88 @@ tips: - Press F4 to show your FPS and Tick Rate. - Press F4 twice to show the tile of your mouse and camera. - You can click a pinned shape on the left side to unpin it. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-tr.yaml b/translations/base-tr.yaml index 389b01e8..f793972a 100644 --- a/translations/base-tr.yaml +++ b/translations/base-tr.yaml @@ -13,41 +13,15 @@ steamPage: En başta sadece şekilleri işlerken, sonradan onları boyaman gerekecek - bunun için boyaları çıkarmalı ve karıştırmalısın! Oyunu Steam'de satın almak tam sürüme erişimi sağlayacak, ama herzaman shapez.io deneme sürümünü oynayıp sonradan karar verebilirsin! - title_advantages: Bağımsıza özel Avantajlar - advantages: - - <b>12 Yeni Seviye</b> toplamda 26 seviye. - - <b>18 Yeni Yapı</b> tam otomatik bir fabrika için! - - <b>20 Geliştirme Aşaması</b> saatlerce eğlence için! - - <b>Kablolar Güncellemesi</b> tamamen yeni bir boyut için! - - <b>Gece Modu</b>! - - Sınırsız Oyun Kaydı - - Sınırsız Yerimi - - Beni destekleyin! ❤️ - title_future: Planlanan İçerik - planned: - - Taslak Kütüphanesi (Bağımsıza Özel) - - Steam Başarımları - - Yapboz Modu - - Küçük Harita - - Modlar - - Kum Kutusu Modu - - ... ve daha fazlası! - title_open_source: Bu oyun açık kaynak kodlu! - title_links: Bağlantılar - links: - discord: Resmi Discord Sunucusu - roadmap: Yol Haritası - subreddit: Subreddit - source_code: Kaynak kodu (GitHub) - translate: Çeviriye yardım et - text_open_source: >- - Herkes bu oyuna katkıda bulunabilir. Toplulukla aktif bir şekilde - ilgileniyorum. Bütün önerileri ve geri dönüşleri incelemeye çalışıyorum - ve mümkün olanları değerlendirmeye alıyorum. - - Bütün yol haritasına Trello kartımda göz atmayı unutma! + what_others_say: İnsanlar shapez.io hakkında ne düşünüyor? + nothernlion_comment: Bu oyun süper - Oynarken harika vakit geçiriyorum ve zaman akıp gidiyor. + notch_comment: Hay aksi. Gerçekten uyumalıyım, ama şimdi shapez.io'da nasıl bir + bilgisayar yapabileceğimi çözdüm. + steam_review_comment: Bu oyun hayatımı çaldı ve geri istemiyorum. Üretim + hatlarımı daha verimli yapmamı engelleyemeyecek kadar güzel bir fabrika + oyunu. global: - loading: Yüklenİyor + loading: Yükleniyor error: Hata thousandsDivider: "," decimalSeparator: . @@ -67,8 +41,8 @@ global: oneDayAgo: bir gün önce xDaysAgo: <x> gün önce secondsShort: <seconds>sn - minutesAndSecondsShort: <minutes>dk <seconds>dk - hoursAndMinutesShort: <hours>sa <minutes>sa + minutesAndSecondsShort: <minutes>dk <seconds>sn + hoursAndMinutesShort: <hours>sa <minutes>dk xMinutes: <x> dakika keys: tab: TAB @@ -77,16 +51,17 @@ global: escape: ESC shift: SHIFT space: SPACE + loggingIn: Giriş yapılıyor demoBanners: title: Deneme Sürümü intro: Bütün özellikleri açmak için tam sürümü satın alın! mainMenu: play: Oyna - changelog: Değİşİklİk Günlüğü + changelog: Değişiklik Günlüğü importSavegame: Kayıt Yükle openSourceHint: Bu oyun açık kaynak kodlu! - discordLink: Resmİ Discord Sunucusu - helpTranslate: Çevİrİye yardım et! + discordLink: Resmi Discord Sunucusu + helpTranslate: Çeviriye yardım et! browserWarning: Üzgünüz, bu oyunun tarayıcınızda yavaş çalıştığı biliniyor! Tam sürümü satın alın veya iyi performans için Chrome tarayıcısını kullanın. savegameLevel: Seviye <x> @@ -95,7 +70,14 @@ mainMenu: newGame: YENİ OYUN madeBy: <author-link> tarafından yapıldı subreddit: Reddit - savegameUnnamed: Unnamed + savegameUnnamed: İsimsiz + puzzleMode: Yapboz Modu + back: Geri + puzzleDlcText: Fabrikaları küçültmeyi ve verimli hale getirmekten keyif mi + alıyorsun? Şimdi Yapboz Paketini (DLC) Steam'de alarak keyfine keyif + katabilirsin! + puzzleDlcWishlist: İstek listene ekle! + puzzleDlcViewNow: Paketi (DLC) görüntüle dialogs: buttons: ok: OK @@ -109,6 +91,9 @@ dialogs: viewUpdate: Güncellemeleri Görüntüle showUpgrades: Geliştirmeleri Göster showKeybindings: Tuş Kısayollarını Göster + retry: Yeniden Dene + continue: Devam Et + playOffline: Çevrimdışı Oyna importSavegameError: title: Kayıt yükleme hatası text: "Oyun kaydı yükleme başarısız:" @@ -119,16 +104,15 @@ dialogs: title: Oyun bozuk text: "Oyun yükleme başarısız:" confirmSavegameDelete: - title: Silme işlemini onayla - text: <br><br> Bu kayıdı silmek istiyor musunuz? - '<savegameName>' <savegameLevel><br><br>. seviyede. Bu işlem geri - alınamaz! + title: Silme İşlemini onayla + text: Bu kaydı silmek istediğinize emin misiniz?<br><br> '<savegameName>' + seviyesi <savegameLevel><br><br> Bu işlem geri alınamaz! savegameDeletionError: title: Silme başarısız - text: "Oyun kaydını silme başarısız:" + text: "Oyun kaydı silinemedi:" restartRequired: title: Yeniden başlatma gerekiyor - text: Değişiklikleri uygulamak için oyunu yeniden başlatılmalı. + text: Değişiklikleri uygulamak için oyunu yeniden başlatın. editKeybinding: title: Tuş Atamasını Değiştir desc: Atamak isteğiniz tuşa veya fare butonun basın, veya iptal etmek için Esc @@ -146,8 +130,8 @@ dialogs: için tam versiyonu satın alın. oneSavegameLimit: title: Sınırlı Oyun Kaydı - desc: Deneme sürümünde sadece tek bir oyun kaydınız olabilir. Lütfen varolanı - silin veya tam sürümü satın alın! + desc: Deneme sürümünde sadece tek bir oyun kaydınız olabilir. Lütfen mevcut + kaydı silin veya tam sürümü satın alın! updateSummary: title: Yeni güncelleme! desc: "Son oynadığınızdan bu yana gelen değişikler:" @@ -174,8 +158,8 @@ dialogs: taşıma bantlarının yönünü ters çevirir.<br>" createMarker: title: Yeni Konum İşareti - desc: Anlamlı bir isim ver. Ayrıca <strong>Şekil koduda</strong> koyabilirsiniz - (<link>Buradan</link> kod yapabilirisinz ) + desc: Anlamlı bir isim ver. Ayrıca <strong>Şekil kodu da</strong> + koyabilirsiniz (<link>Buradan</link> kod yapabilirsiniz ) titleEdit: Konum İşaretini Düzenle markerDemoLimit: desc: Deneme sürümünde sadece iki adet yer imi oluşturabilirsiniz. Sınırsız yer @@ -197,39 +181,105 @@ dialogs: title: Sinyal Ata descItems: "Önceden tanımlı bir eşya seçin:" descShortKey: ... veya <strong>şekil kodunu</strong> girin (<link>Buradan</link> - edinebileceğiniz) + oluşturabilirsiniz) renameSavegame: - title: Oyun Kaydının Yeniden Adlandır - desc: Oyun kaydını buradan adlandırabilirsiniz. + title: Oyun Kaydını Yeniden Adlandır + desc: Oyun kayıt ismini buradan değiştirebilirsiniz. tutorialVideoAvailable: title: Eğitim Mevcut - desc: Bu seviye için eğitim vidyosu mevcut! İzlemek - ister misin? + desc: Bu seviye için eğitim videosu mevcut! İzlemek ister misin? tutorialVideoAvailableForeignLanguage: title: Eğitim Mevcut - desc: Bu seviye için eğitim vidyosu mevcut, ama İngilizce dilinde. - İzlemek ister misin? + desc: Bu seviye için eğitim videosu mevcut, ama İngilizce dilinde. İzlemek ister + misin? + editConstantProducer: + title: Eşya Seç + puzzleLoadFailed: + title: Yapbozlar yüklenirken hata oluştu + desc: "Malesef yapbozlar yüklenemedi:" + submitPuzzle: + title: Yapboz Yayınla + descName: "Yapbozuna bir isim ver:" + descIcon: "Lütfen yapbozunun ikonu olacak eşsiz kısa bir anahtar gir. (Anahtarı + <link>buradan</link> oluşturabilirsin, yada aşagıdaki şekillerden + rastgele birini seçebilirsin):" + placeholderName: Yapboz İsmi + puzzleResizeBadBuildings: + title: Yeniden boyutlandırma mümkün değil + desc: Alanı daha fazla küçültemezsin, çünkü bazı yapılar alanın dışında + kalabilir. + puzzleLoadError: + title: Kötü Yapboz + desc: "Yapboz yüklenirken hata oluştu:" + offlineMode: + title: Çevrİmdışı Modu + desc: Sunuculara ulaşamadık, bu yüzden oyun çevrimdışı modda çalışmak zorunda. + Lütfen aktif bir internet bağlantısı olduğundan emin olunuz. + puzzleDownloadError: + title: İndirme Hatası + desc: "Yapboz indirilemedi:" + puzzleSubmitError: + title: Yayınlama Hatası + desc: "Yapboz yayınlanamadı:" + puzzleSubmitOk: + title: Yapboz Yayınlandı + desc: Tebrikler! Yapbozun yayınlandı ve artık başkaları tarafından + oynanabilecek. Şimdi yapbozunu "Yapbozlarım" kısmında bulabilirsin. + puzzleCreateOffline: + title: Çevrimdışı Modu + desc: Çevrimdışı olduğundan yapbozunu kayıt edemeyecek veya yayınlayamayacaksın. + Devam etmek istediğinize emin misiniz? + puzzlePlayRegularRecommendation: + title: Öneri + desc: Ben <strong>muhakkak</strong> yapboz moduna başlamadan önce normal oyunu + seviye 12'ye kadar oynamayı tavsiye ediyorum, aksi takdirde henüz + sunulmamış mekaniklerle (yapılar ve oynanış şekilleri) + karşılaşabilirsiniz. + puzzleShare: + title: Kısa Anahtar Kopyalandı + desc: Yapbozun kısa anahtarı (<key>) kopyala/yapıştır hafızasına kopyalandı! Bu + anahtar yapboz menüsünde, yapboza erişmek için kullanılabilir. + puzzleReport: + title: Yapbozu Şikayet Et + options: + profane: Ayrımcılık (din, dil, ırk) + unsolvable: Çözülemez Yapboz + trolling: Trolleme + puzzleReportComplete: + title: Geri bildiriminiz için teşekkürler! + desc: Yapboz işaretlendi. + puzzleReportError: + title: Şikayet edilemedi + desc: "Şikayetiniz iletilemedi:" + puzzleLoadShortKey: + title: Kısa anahtar gir + desc: Yapbozu yüklemek için kısa anahtarı giriniz + puzzleDelete: + title: Yapboz silinsin mi? + desc: "'<title>' yapbozunu silmek istediğinize emin misiniz? Bu işlem geri + alınamaz!" ingame: keybindingsOverlay: moveMap: Hareket Et selectBuildings: Alan seç - stopPlacement: Yerleştİrmeyİ durdur + stopPlacement: Yerleştirmeyi durdur rotateBuilding: Yapıyı döndür - placeMultiple: Çoklu yerleştİr - reverseOrientation: Yönünü ters çevİr + placeMultiple: Çoklu yerleştir + reverseOrientation: Yönünü ters çevir disableAutoOrientation: Otomatik yönü devre dışı bırak toggleHud: Kullanıcı arayüzünü aç/kapa - placeBuilding: Yapı yerleştİr - createMarker: Yer İmi oluştur + placeBuilding: Yapı yerleştir + createMarker: Yer imi oluştur delete: SİL pasteLastBlueprint: Son taslağı yapıştır lockBeltDirection: Taşıma bandı planlayıcısını kullan plannerSwitchSide: Planlayıcıyı ters çevir cutSelection: Kes copySelection: Kopyala - clearSelection: Seçİmİ temİzle - pipette: Pİpet - switchLayers: Katman değİştİr + clearSelection: Seçimi temizle + pipette: Pipet + switchLayers: Katman değiştir + clearBelts: Bantları temizle buildingPlacement: cycleBuildingVariants: Yapının farklı türlerine geçmek için <key> tuşuna bas. hotkeyLabel: "Kısayol: <key>" @@ -240,19 +290,19 @@ ingame: itemsPerSecond: <x> eşya / sn itemsPerSecondDouble: (x2) tiles: <x> karo - speed: Speed + speed: Hız levelCompleteNotification: levelTitle: SEVİYE <level> completed: Tamamlandı unlockText: Açıldı <reward>! - buttonNextLevel: Sonrakİ Sevİye + buttonNextLevel: Sonraki Seviye notifications: newUpgrade: Yeni geliştirme mevcut! gameSaved: Oyun kaydedildi. freeplayLevelComplete: Seviye <level> tamamlandı! shop: - title: Gelİştİrmeler - buttonUnlock: Gelİştİr + title: Geliştirmeler + buttonUnlock: Geliştİr tier: Aşama <x> maximumLevel: SON SEVİYE (Hız x<currentMult>) statistics: @@ -283,52 +333,52 @@ ingame: blueprintPlacer: cost: Bedel waypoints: - waypoints: Yer İmi + waypoints: Yer imleri hub: MERKEZ - description: Sol-tık ile Yer İmlerine git, sağ-tık ile yer imini + description: Sol-tık ile Yer imlerine git, sağ-tık ile yer imini sil.<br><br>Mevcut konumdan yer imi oluşturmak için <keybinding>'a bas, <strong>sağ-tık</strong> ile mevcut konumda yer imi oluştur. - creationSuccessNotification: Yer İmi oluşturuldu. + creationSuccessNotification: Yer imi oluşturuldu. interactiveTutorial: - title: Eğİtİm + title: Eğitim hints: 1_1_extractor: Daire üretmek için <strong>daire şekli</strong> üzerine bir <strong>üretici</strong> yerleştir! 1_2_conveyor: "Üreticiyi <strong>taşıma bandı</strong> ile merkezine - bağla!<br><br>İpucu: Taşıma bandı nı seç ve taşıma bandını + bağla!<br><br>İpucu: Taşıma bandını seç ve taşıma bandını farenin sol tuşu ile <strong>tıkla ve sürükle</strong>!" 1_3_expand: "Bu bir boşta kalma oyunu (idle game) <strong>değil</strong>! Hedefe ulaşmak için daha fazla üretici ve taşıma bandı yerleştir.<br><br>İpucu: Birden fazla üretici yerleştirmek için <strong>SHIFT</strong> tuşuna basılı tut, ve <strong>R</strong> tuşuyla taşıma bandının yönünü döndür." - 2_1_place_cutter: - "Şimdi daireleri yarıya bölmek için bir <strong>Kesici</strong> yerleştir!<br><br> - Not: Kesici şekilleri yönünden bağımsız olarak her zaman <strong>yukarıdan aşağıya</strong> - keser." - 2_2_place_trash: Kesicinin çıkış hatları doluysa <strong>durabilir</strong>!<br><br> - Bunun için kullanılmayan çıktılara <strong>çöp</strong> - yerleştirin. - 2_3_more_cutters: - "İyi iş çıkardın! Şimdi işleri hızlandırmak için <strong>iki kesici daha</strong> - yerleştir.<br><br> Not: <strong>0-9 tuşlarını</strong> kullanarak yapılara - daha hızlı ulaşabilirsin!" - 3_1_rectangles: "Şimdi biraz dikdörtgen üretelim! <strong>4 Üretici yerleştir</strong> ve - bunları merkeze bağla.<br><br> Not: <strong>SHIFT tuşuna</strong> - basılı tutarak bant planlayıcıyı + 2_1_place_cutter: "Şimdi daireleri yarıya bölmek için bir + <strong>Kesici</strong> yerleştir!<br><br> Not: Kesici şekilleri + yönünden bağımsız olarak her zaman <strong>yukarıdan + aşağıya</strong> keser." + 2_2_place_trash: Kesicinin çıkış hatları doluysa + <strong>durabilir</strong>!<br><br> Bunun için kullanılmayan + çıktılara <strong>çöp</strong> yerleştirin. + 2_3_more_cutters: "İyi iş çıkardın! Şimdi işleri hızlandırmak için <strong>iki + kesici daha</strong> yerleştir.<br><br> Not: <strong>0-9 + tuşlarını</strong> kullanarak yapılara daha hızlı + ulaşabilirsin!" + 3_1_rectangles: "Şimdi biraz dikdörtgen üretelim! <strong>4 Üretici + yerleştir</strong> ve bunları merkeze bağla.<br><br> Not: + <strong>SHIFT tuşuna</strong> basılı tutarak bant planlayıcıyı etkinleştir!" - 21_1_place_quad_painter: - <strong>Dörtlü boyayıcıyı</strong> yerleştirin ve <strong>daireyi</strong>, - <strong>beyaz</strong> ve <strong>kırmızı</strong> renkleri - elde edin! - 21_2_switch_to_wires: Kablo katmanına <strong>E tuşuna</strong> basarak geçiş yapın!<br><br> - Sonra boyayıcının <strong>dört girişini kablolara + 21_1_place_quad_painter: <strong>Dörtlü boyayıcıyı</strong> yerleştirin ve + <strong>daireyi</strong>, <strong>beyaz</strong> ve + <strong>kırmızı</strong> renkleri elde edin! + 21_2_switch_to_wires: Kablo katmanına <strong>E tuşuna</strong> basarak geçiş + yapın!<br><br> Sonra boyayıcının <strong>dört girişini kablolara bağlayın</strong>! 21_3_place_button: Harika! Şimdi bir <strong>Anahtar</strong> yerleştirin ve onu kablolarla bağlayın! - 21_4_press_button: "Anahtara basarak <strong>gerçekçi sinyal(1) gönderin</strong> ve bununla - boyayıcıyı aktifleştirin.<br><br> Not: Bütün girişleri bağlamanıza gerek yok! - Sadece iki tanesini kabloyla bağlamayı deneyin." + 21_4_press_button: "Anahtara basarak <strong>gerçekçi sinyal(1) + gönderin</strong> ve bununla boyayıcıyı aktifleştirin.<br><br> + Not: Bütün girişleri bağlamanıza gerek yok! Sadece iki tanesini + kabloyla bağlamayı deneyin." colors: red: Kırmızı green: Yeşil @@ -361,9 +411,6 @@ ingame: buildings: title: 18 Yeni Yapı desc: Fabrikanı tamamen otomatikleştir! - savegames: - title: ∞ Oyun Kayıtları - desc: Canın ne kadar isterse! upgrades: title: ∞ Geliştirme Aşaması desc: Bu deneme sürümünde sadece 5 tane var! @@ -375,10 +422,56 @@ ingame: desc: Tamamen yeni bir boyut! darkmode: title: Gece Modu - desc: Gözlerini artık yorma! + desc: Gözlerin artık yorulmasın! support: title: Beni destekleyin desc: Boş zamanımda bu oyunu geliştiriyorum! + achievements: + title: Başarımlar + desc: Bütün başarımları açmaya çalış! + puzzleEditorSettings: + zoneTitle: Alan + zoneWidth: Genişlik + zoneHeight: Yükseklik + trimZone: Alanı Sınırlandır + clearItems: Eşyaları temizle + share: Paylaş + report: Şikayet et + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Yapboz Oluşturucu + instructions: + - 1. Oyunculara şekil ve renk sağlamak için <strong>Sabit + Üreticileri</strong> yerleştir. + - 2. Oyuncuların üretmesi ve bir veya birden fazla <strong>Hedef + Merkezine</strong> teslim edebilmeleri için bir veya birden fazla + şekil oluştur. + - 3. Bir Hedef Merkezine belirli bir zaman içinde şekil teslim + edilirse, Hedef Merkezi bunu oyuncuların tekrardan üreteceği bir + <strong>hedef olarak kabul eder</strong> (<strong>Yeşil + rozetle</strong> gösterilmiş). + - 4. Bir yapıyı devre dışı bırakmak için üzerindeki <strong>kilit + butonuna</strong> basınız. + - 5. Gözat butonuna bastığınız zaman, yapbozunuz onaylanacaktır ve + sonra onu yayınlayabileceksiniz. + - 6. Yayınlandığı zaman, Sabit Üreticiler ve Hedef Merkezleri + dışındaki <strong>bütün yapılar silinecektir</strong> - Bu kısmı + oyuncuların kendisi çözmesi gerekecek sonuçta :) + puzzleCompletion: + title: Yapboz Tamamlandı! + titleLike: "Yapbozu beğendiyseniz kalbe tıklayınız:" + titleRating: Yapbozu ne kadar zor buldunuz? + titleRatingDesc: Değerlendirmeniz size daha iyi öneriler sunmamda yardımcı olacaktır + continueBtn: Oynamaya Devam Et + menuBtn: Menü + nextPuzzle: Sonraki Yapboz + puzzleMetadata: + author: Yapımcı + shortKey: Kısa Anahtar + rating: Zorluk + averageDuration: Ortamala Süre + completionRate: Tamamlama Süresi shopUpgrades: belt: name: Taşıma Bandı, Dağıtıcılar & Tüneller @@ -394,7 +487,7 @@ shopUpgrades: description: Hız x<currentMult> → x<newMult> buildings: hub: - deliver: Teslİm et + deliver: Teslim et toUnlock: Açılacak levelShortcut: SVY endOfDemo: Deneme Sürümünün Sonu @@ -405,11 +498,11 @@ buildings: sürükle. miner: default: - name: Üretİcİ - description: Bir şekli veya rengi üretmek için üzerlerini yerleştir. + name: Üretici + description: Bir şekli veya rengi üretmek için üzerine yerleştir. chainable: - name: Üretİcİ (Zİncİrleme) - description: Bir şekli veya rengi üretmek için üzerlerini yerleştir. Zincirleme + name: Üretici (Zincirleme) + description: Bir şekli veya rengi üretmek için üzerine yerleştir. Zincirleme bağlanabilir. underground_belt: default: @@ -421,12 +514,12 @@ buildings: aktarımı sağlar. cutter: default: - name: Kesİcİ + name: Kesici description: Şekilleri yukarıdan aşağıya böler ve iki yarım parçayı çıktı olarak verir. <strong>Eğer sadece bir çıktıyı kullanıyorsanız diğer çıkan parçayı yok etmeyi unutmayın, yoksa kesim durur!</strong> quad: - name: Kesİcİ (Dörtlü) + name: Kesici (Dörtlü) description: Şekilleri dört parçaya böler. <strong>Eğer sadece bir çıktıyı kullanıyorsanız diğer çıkan parçaları yok etmeyi unutmayın, yoksa kesim durur!</strong> @@ -435,16 +528,16 @@ buildings: name: Döndürücü description: Şekilleri saat yönünde 90 derece döndürür. ccw: - name: Döndürücü (Saat Yönünün Tersİ) + name: Döndürücü (Saat Yönünün Tersi) description: Şekilleri saat yönünün tersinde 90 derece döndürür. rotate180: - name: Dödürücü (180 Derece) + name: Döndürücü (180 Derece) description: Şekilleri 180 derece döndürür. stacker: default: - name: Kaynaştırıcı - description: İki eşyayı kaynaştırır. Eğer eşyalar kaynaştırılamazsa sağdaki eşya - soldaki eşyanın üzerine kaynaştırılır. + name: Birleştirici + description: İki eşyayı birleştirir. Eğer eşyalar birleştirilemezse sağdaki eşya + soldaki eşyanın üzerine eklenir. mixer: default: name: Renk Karıştırıcısı @@ -471,12 +564,12 @@ buildings: wire: default: name: Kablo - description: Sinyali, eşyalar veya ikili değerler(1 / 0), aktarmayı sağlar. - Farklı renkteki kablolar bağlanamaz. + description: Eşya, renk ve ikili değerler(1 / 0) gibi sinyalleri aktarmayı + sağlar. Farklı renkteki kablolar bağlanamaz. second: name: Kablo - description: Sinyali, eşyalar veya ikili değerler(1 / 0), aktarmayı sağlar. - Farklı renkteki kablolar bağlanamaz. + description: Eşya, renk ve ikili değerler(1 / 0) gibi sinyalleri aktarmayı + sağlar. Farklı renkteki kablolar bağlanamaz. wire_tunnel: default: name: Kablo Tüneli @@ -486,22 +579,22 @@ buildings: name: Dengeleyici description: Çok işlevli - bütün girdileri eşit olarak bütün çıkışlara dağıtır. merger: - name: Bİrleştİrİcİ (tekİl) + name: Birleştirici (tekil) description: İki taşıma bandını bir çıktı verecek şekilde birleştirir. merger-inverse: - name: Birleştİrİcİ (tekİl) + name: Birleştirici (tekil) description: İki taşıma bandını bir çıktı verecek şekilde birleştirir. splitter: - name: Ayırıcı (tekİl) + name: Ayırıcı (tekil) description: Bir taşıma bandını iki çıktı verecek şekilde ayırır. splitter-inverse: - name: Ayırıcı (tekİl) + name: Ayırıcı (tekil) description: Bir taşıma bandını iki çıktı verecek şekilde ayırır. storage: default: - name: Storage - description: Belirli bir sınıra kadar fazla eşyaları depolar. Taşırma kapısı - olarak kullanıla bilir. + name: Depo + description: Belirli bir sınıra kadar fazla eşyaları depolar. Sol çıkışa öncelik + verir ve taşma kapısı olarak kullanılabilir. constant_signal: default: name: Sabit Sinyal @@ -515,11 +608,11 @@ buildings: kullanılabilir. logic_gate: default: - name: AND Kapısı + name: VE Kapısı description: Eğer iki girdi de doğruysa, bu kapı"1" sinyali gönderir. (Doğru; bir şekil, renk veya "1" girdisi demektir.) not: - name: NOT Kapısı + name: DEĞİL Kapısı description: Eğer girdi doğru değilse, bu kapı "1" sinyali gönderir. (Doğru; bir şekil, renk veya "1" girdisi demektir.) xor: @@ -527,7 +620,7 @@ buildings: description: Eğer iki girdiden sadece biri "1" sinyali alıyorsa, bu kapı "1" gönderir. (Doğru; bir şekil, renk veya "1" girdisi demektir.) or: - name: OR Kapısı + name: YADA Kapısı description: Eğer iki girdiden herhangi biri "1" sinyali alıyorsa, bu kapı "1" gönderir. (Doğru; bir şekil, renk veya "1" girdisi demektir.) transistor: @@ -552,7 +645,7 @@ buildings: veya ikili değer (1/0) olabilir. reader: default: - name: Band Okuyucu + name: Bant Okuyucu description: Bant üzerindeki ortalama hızı ölçer. Kablo katmanında son okunan eşyayı gösterir (açıldığında). analyzer: @@ -587,9 +680,21 @@ buildings: name: Eşya Üretici description: Sadece kum kutusu modunda açık, kablo katmanındaki sinyali normal katmanda çıktı olarak verir. + constant_producer: + default: + name: Sabİt Üretİcİ + description: Sabit olarak belirli bir şekli veya rengi üretir. + goal_acceptor: + default: + name: Hedef Merkezİ + description: Şekilleri hedef olarak tanımlamak için hedef merkezine teslim et. + block: + default: + name: Engel + description: Bir karoyu kullanıma kapatmayı sağlar. storyRewards: reward_cutter_and_trash: - title: Şekİllerİ Kesmek + title: Şekilleri Kesmek desc: <strong>Kesici</strong> açıldı, bu alet şekilleri <strong>yönelimi ne olursa olsun</strong> ortadan ikiye böler!<br><br> Çıkan şekilleri kullanmayı veya çöpe atmayı unutma yoksa <strong>makine @@ -616,7 +721,7 @@ storyRewards: <strong>birleştirilir</strong>, yoksa sol girişteki şeklin <strong>üzerine kaynaştırılır</strong>! reward_splitter: - title: Ayırıcı/Bİrleştİrİcİ + title: Ayırıcı/Birleştirici desc: <strong>Ayırıcıyı</strong> açtın! <strong>dengeleyicin</strong> başka bir türü - Tek giriş alıp ikiye ayırır reward_tunnel: @@ -624,7 +729,7 @@ storyRewards: desc: <strong>Tünel</strong> açıldı - Artık eşyaları taşıma bantları ve yapılar altından geçirebilirsiniz! reward_rotater_ccw: - title: Saat yönünün tersİnde Döndürme + title: Saat yönünün tersinde Döndürme desc: <strong>Döndürücünün</strong> farklı bir türünü açtın - Şekiller artık saat yönünün tersinde döndürülebilir! İnşa etmek için döndürücüyü seç ve <strong>türler arası geçiş yapmak için 'T' tuşuna @@ -641,11 +746,11 @@ storyRewards: <strong>daha yüksek</strong> ve tünel türlerini artık içiçe kullanabilirsin! reward_cutter_quad: - title: Çeyreğİnİ Kesme + title: Çeyreğini Kesme desc: <strong>Kesicinin</strong> yeni bir türünü açtın - Bu tür şekilleri iki parça yerine <strong>dört parçaya</strong> ayırabilir! reward_painter_double: - title: Çİfte Boyama + title: Çifte Boyama desc: <strong>Boyayıcının<strong> başka bir türünü açtın - Sıradan bir boyayıcı gibi çalışır, fakat <strong>iki şekli birden</strong> boyayarak iki boya yerine sadece bir boya harcar! @@ -665,13 +770,13 @@ storyRewards: yapıştırabilmek için <strong>taslak şekilleri</strong> üretmelisin! (Az önce teslim ettiğin şekiller). no_reward: - title: Sonrakİ Sevİye + title: Sonraki Seviye desc: "Bu seviyenin bir ödülü yok ama bir sonrakinin olacak!<br><br> Not: Şu anki fabrikalarını yok etmemeni öneririm - Daha sonra <strong>Geliştirmeleri açmak için </strong> <strong>bütün hepsine</strong> ihtiyacın olacak!" no_reward_freeplay: - title: Sonrakİ Sevİye + title: Sonraki Seviye desc: Tebrikler! reward_freeplay: title: Özgür Mod @@ -701,7 +806,7 @@ storyRewards: hızını ölçmeyi sağlar.<br><br>Kabloları açana kadar bekle - o zaman çok kullanışlı olacak. reward_rotater_180: - title: Dödürücü (180 derece) + title: Döndürücü (180 derece) desc: 180 derece <strong>döndürücüyü</strong> açtınız! - Şekilleri 180 derece döndürür (Süpriz! :D) reward_display: @@ -712,10 +817,10 @@ storyRewards: dene!" reward_constant_signal: title: Sabit Sinyal - desc: Kablo katmanında inşa edilebilen <strong>sabit sinyal'i</strong> açtın! - Bu yapı örneğin <strong>eşya filtrelerine</strong> bağlanabilir.<br><br> - Sabit sinyal <strong>şekil</strong>, <strong>renk</strong> veya - <strong>ikili değer</strong> (1 veya 0) + desc: Kablo katmanında inşa edilebilen <strong>sabit sinyal'i</strong> açtın! Bu + yapı örneğin <strong>eşya filtrelerine</strong> + bağlanabilir.<br><br> Sabit sinyal <strong>şekil</strong>, + <strong>renk</strong> veya <strong>ikili değer</strong> (1 veya 0) gönderelebilir. reward_logic_gates: title: Mantık Kapıları @@ -736,13 +841,13 @@ storyRewards: et.<br><br> Ne seçersen seç eğlenmeyi unutma! reward_wires_painter_and_levers: title: Kablolar ve Dörtlü Boyayıcı - desc: "Az önce <strong>Kablo Katmanını</strong> açtın: Normal oyunun bulunduğu - katmanın üzerinde ayrı bir katmandır ve bir sürü yeni özelliği - vardır!<br><br> Başlangıç olarak senin için <strong>Dörtlü - Boyayıcıyı</strong> açıyorum. - Kablo katmanında boyamak için - istediğin hatları bağla! <br><br> Kablo katmanına geçiş yapmak için - <strong>E tuşunu </strong> kullan. <br><br> Not: İpuçlarını kablo eğitimlerini - görmek için ayarlarda aktifleştirmeyi unutma." + desc: "Az önce the <strong>Tel Katmanının</strong> kilidini açtın : Normal + katmanın üzerinde ayrı bir katman ve yeni mekanikler + sunmakta!<br><br> Başlangıç için sana <strong>Quad + Painter'ı</strong> açtım - Tel tabakasındaki bağlamak istediğin + yuvaları bağla !<br><br> Tel katmanına geçmek için + <strong>E</strong> tuşuna bas. <br><br> NOT:Kablolar öğreticisini + aktive etmek için <strong>ipuçlarını etkinleştir</strong> !" reward_filter: title: Eşya Filtresi desc: <strong>Eşya filtresini</strong> açtın! Kablo katmanından gelen sinyalle @@ -761,10 +866,10 @@ settings: staging: Yükseltme prod: Üretim buildDate: <at-date> derlendi - rangeSliderPercentage: <amount> % + rangeSliderPercentage: "% <amount>" labels: uiScale: - title: Arayüz Ölçeğİ + title: Arayüz Ölçeği description: Kullanıcı arayüzünün boyutunu değiştirir. Arayüz cihazınızın çözünürlüğüne göre ölçeklendirilir, ama ölçeğin miktarı burada ayarlanabilir. @@ -775,7 +880,7 @@ settings: large: Büyük huge: Çok Büyük scrollWheelSensitivity: - title: Yakınlaştırma Hassasİyeti + title: Yakınlaştırma Hassasiyeti description: Yakınlaştırmanın ne kadar hassas olduğunu ayarlar (Fare tekerleği veya dokunmatik farketmez). sensitivity: @@ -785,18 +890,18 @@ settings: fast: Hızlı super_fast: Çok Hızlı language: - title: Dİl - description: Dili değiştirir. Bütün çevirmeler kullanıcı katkılarıyla + title: Dil + description: Dili değiştirir. Tüm çeviriler kullanıcı katkılarıyla oluşturulmuştur ve tam olmayabilir! fullscreen: title: Tam Ekran description: En iyi oyun tecrübesi için oyunun tam ekranda oynanması tavsiye edilir. Sadece tam sürümde mevcut. soundsMuted: - title: Ses Efektlerİnİ Sustur + title: Ses Efektlerini Sustur description: Aktif edildiğinde bütün ses efektleri susturulur. musicMuted: - title: Müzİğİ Sustur + title: Müziği Sustur description: Aktif edildiğinde bütün müzikler susturulur. theme: title: Renk Teması @@ -805,7 +910,7 @@ settings: dark: Karanlık light: Aydınlık refreshRate: - title: Sİmülasyon Hızı + title: Simülasyon Hızı description: Eğer mönitörünüzün yenileme hızı (Hz) yüksekse oyunun akıcı bir şekilde çalışması için yenileme hızını buradan değiştirin. Eğer bilgisayarınız yavaşsa bu ayar oyunun gösterdiği kare hızını @@ -817,7 +922,7 @@ settings: özellik SHIFT tuşuna sürekli basılı tutup yapı yerleştirmeyle aynıdır. offerHints: - title: İpuçları ve Eğİtİmler + title: İpuçları ve Eğitimler description: İpuçları ve eğitimleri açar. Ayrıca bazı arayüz elemanlarını oyunun daha kolay öğrenilebilmesi için gizler. enableTunnelSmartplace: @@ -827,11 +932,11 @@ settings: tünellerin çekilerek inşa edilmesi ve aşırı uzağa yerleştirilen tünel uçlarının silinmesini de sağlar. vignette: - title: Gölgelendİrme + title: Gölgelendirme description: Gölgelendirmeyi açar. Gölgelendirme ekranın köşelerini karartır ve yazıları daha kolay okuyabilmeinizi sağlar. autosaveInterval: - title: Otomatİk Kayıt Sıklığı + title: Otomatik Kayıt Sıklığı description: Oyunun hangi sıklıkta kaydedileceğini belirler. Ayrıca otomatik kayıt tamamen kapatılabilir. intervals: @@ -842,11 +947,11 @@ settings: twenty_minutes: 20 Dakika disabled: Devredışı compactBuildingInfo: - title: Derlİ Toplu Yapı Bİlgİlerİ + title: Derli Toplu Yapı Bilgileri description: Yapıların bilgi kutularını sadece oranlarını göstecek şekilde - kısaltır. Aksi taktirde yapının açıklaması ve resmi gösterilir. + kısaltır. Aksi takdirde yapının açıklaması ve resmi gösterilir. disableCutDeleteWarnings: - title: Kes/Sİl Uyarılarını Devredışı Bırak + title: Kes/Sil Uyarılarını Devre dışı Bırak description: 100 birimden fazla parçayı kesme/silme işlemlerinde beliren uyarı pencerelerini devredışı bırakır. enableColorBlindHelper: @@ -872,36 +977,36 @@ settings: title: Ses Ayarı description: Ses efektlerinin seviyesini ayarlar musicVolume: - title: Müzİk Ayarı + title: Müzik Ayarı description: Müzik seviyesini ayarlar lowQualityMapResources: - title: Düşük Kalİte Harİta Kaynakları + title: Düşük Kalite Harİta Kaynakları description: Oyun performansını artırmak için haritada görünen kaynakların çizim - kalitesinin sadeleştirir. Kaynaklar daha açık görüneceğinde bu - özelliği bir dene! + kalitesini sadeleştirir. Hatta daha net bir görüntü sağlar, bu + yüzden bir dene! disableTileGrid: - title: Harİta Çİzgİlerİnİ Gizle + title: Harita Çizgilerini Gizle description: Harita çizgilerini gizlemek oyun performansına yardımcı olabilir. - Aynı zamanda oyunun daha açık görünmesini sağlar! + Aynı zamanda oyunun daha net görünmesini sağlar! clearCursorOnDeleteWhilePlacing: - title: Sağ Tık İnşa İptalİ + title: Sağ Tık İnşa İptali description: Varsayılan olarak açık. Özellik açıksa, inşa modundayken sağ yık yapıldığında inşa modundan çıkar. Eğer özellik kapalıysa, inşa modundan çıkmadan var olan yapıları sağ tık ile silebilirsiniz. lowQualityTextures: - title: Düşük Kalİte Görüntü (Çirkin) + title: Düşük Kalite Görüntü (Çirkin) description: Performans için düşük kalite görüntü kullanır. Bu oyunun daha çirkin görünmesine sebep olur! displayChunkBorders: - title: Harİta Alan Sınırlarını Göster + title: Harita Alan Sınırlarını Göster description: Oyun 16'ya 16 alanlardan oluşur. Bu seçenek aktif olduğunda alan sınırları görüntülenir. pickMinerOnPatch: - title: Kaynak Üzerinde Üretİcİ Seç + title: Kaynak Üzerinde Üretici Seç description: Varsayılan olarak açık. Eğer pipet bir kaynağın üzerinde kullanılırsa, üreteç yapısı inşa için seçilir. simplifiedBelts: - title: Sadeleştİrİlmİş Bantlar (Çirkin) + title: Sadeleştirilmiş Bantlar (Çirkin) description: Taşıma bandı üzerindeki eşyalar fare imleci üzerinde değilse görüntülenmez. Eğer gerçekten performansa ihtiyacınız yoksa bu ayarla oynamanız tavsiye edilmez. @@ -909,7 +1014,7 @@ settings: title: Fare Kaydırarak Hareket Etme description: Fareyi ekranın köşelerine getirerek hareket ettirmeyi sağlar. zoomToCursor: - title: Farenin Konumuna Yakınlaştırma + title: Farenİn Konumuna Yakınlaştırma description: Eğer etkinleştirilirse zaman ekran yakınlaştırılması fare imlecinin bulunduğu yere doğru olur. Etkinleştirilmezse yakınlaştırma ekranın ortasına doğru olur. @@ -917,17 +1022,22 @@ settings: title: Uzak Bakışta Kaynakların Büyüklüğü description: Haritaya uzaktan bakıldığında, haritadaki şekillerin büyüklüğünü ayarlar. + shapeTooltipAlwaysOn: + title: Şekil İpucu - Her Zaman Göster + description: Şekil ipuçlarını 'ALT' tuşuna basarak göstermek yerine her zaman + gösterir. + tickrateHz: <amount> Hz keybindings: title: Tuş Atamaları hint: "İpucu: CTRL, SHIFT ve ALT tuşlarından yararlanın! Farklı yerleştirme seçeneklerini kullanmanızı sağlarlar." resetKeybindings: Tuş Atamalarını Sıfırla categoryLabels: - general: Uygulama + general: Genel ingame: Oyun navigation: Hareket placement: Yerleştİrme - massSelect: Çoklu Seçim + massSelect: Çoklu Seçİm buildings: Yapı Kısayolları placementModifiers: Yerleştİrme Özellİklerİ mappings: @@ -947,8 +1057,8 @@ keybindings: toggleFPSInfo: FPS ve Debug Bilgisini Aç/Kapat belt: Taşıma Bandı underground_belt: Tünel - miner: Üretİcİ - cutter: Kesİcİ + miner: Üretici + cutter: Kesici rotater: Döndürücü stacker: Kaynaştırıcı mixer: Renk Karıştırıcısı @@ -981,7 +1091,7 @@ keybindings: logic_gate: Mantık Kapısı lever: Anahtar (normal) filter: Filtre - wire_tunnel: Kablo Köprüsü + wire_tunnel: Kablo Tüneli display: Ekran reader: Bant Okuyucu virtual_processor: Sanal Kesici @@ -990,6 +1100,15 @@ keybindings: comparator: Karşılaştırıcı item_producer: Eşya Üretici (Kum Kutusu) copyWireValue: "Kablo: Fare altındaki değeri kopyala" + rotateToUp: Yukarı Döndür + rotateToDown: Aşağı Döndür + rotateToRight: Sağa Döndür + rotateToLeft: Sola Döndür + constant_producer: Sabit Üretici + goal_acceptor: Hedef Merkezi + block: Engel + massSelectClear: Bantları temizle + showShapeTooltip: Şekil çıkış ipucunu göster about: title: Oyun Hakkında body: >- @@ -1005,7 +1124,7 @@ about: Son olarak, en iyi arkadaşım <a href="https://github.com/niklas-dahl" target="_blank">Niklas'a</a> büyük teşekkürler. Factorio oyunlarımız olmasaydı bu oyun hiç var olmamış olacaktı. changelog: - title: Değİşİklİk Günlüğü + title: Değişiklik Günlüğü demo: features: restoringGames: Oyun kayıtlarını yükleme @@ -1088,3 +1207,89 @@ tips: - Farenizin ve kameranızın sınırlarını göstermek için F4'e iki kez basın. - Sol tarafta sabitlenmiş bir şekle tıklayarak sabitlemesini kaldırabilirsiniz. +puzzleMenu: + play: Oyna + edit: Düzenle + title: Yapboz Modu + createPuzzle: Yapboz Oluştur + loadPuzzle: Yükle + reviewPuzzle: Gözat & Yayınla + validatingPuzzle: Yapboz onaylanıyor + submittingPuzzle: Yapboz yayınlanıyor + noPuzzles: Bu kısımda yapboz yok. + categories: + levels: Seviyeler + new: Yenİ + top-rated: En İyİ Değerlendirilen + mine: Yapbozlarım + easy: Kolay + hard: Zor + completed: Tamamlanan + medium: Orta + official: Resmİ + trending: Bugün öne çıkan + trending-weekly: Haftalık öne çıkan + categories: Kategorİler + difficulties: Zorluğa göre + account: Yapbozlarım + search: Ara + validation: + title: Geçersiz Yapboz + noProducers: Lütfen bir Sabit Üretici yerleştiriniz! + noGoalAcceptors: Lütfen bir Hedef Merkezi yerleştiriniz! + goalAcceptorNoItem: Bir veya birden fazla Hedef Merkezine şekil gönderilmedi. + Hedef belirlemek için onlara şekil gönderiniz. + goalAcceptorRateNotMet: Bir veya birden fazla Hedef Merkezi yeterince eşya + almıyor. Hedef Merkezlerindeki bütün göstergelerin yeşil olduğundan + emin olunuz. + buildingOutOfBounds: Bir veya birden fazla yapı inşa edilebilir alanın dışında. + Alanı azaltınız veya yapıları siliniz. + autoComplete: Yapbozunuz kendisini çözüyor! Sabit üreticilerin hedef + merkezlerine direkt olarak şekil göndermediğinden emin olunuz. + difficulties: + easy: Kolay + medium: Orta + hard: Zor + unknown: Değerlendirilmemiş + dlcHint: Paketi (DLC) çoktan aldın mı? Kütüphanende oyuna sağ tıklayarak, + Özellikler > DLC, paketi etkileştirmeyi unutma. + search: + action: Arama + placeholder: Bir yapboz veya tasarımcı adı giriniz. + includeCompleted: Tamamlananları Göster + difficulties: + any: Hepsi + easy: Kolay + medium: Orta + hard: Zor + durations: + any: Hepsi + short: Kısa (< 2 dk) + medium: Normal + long: Uzun (> 10 dk) +backendErrors: + ratelimit: Çok sık işlem yapıyorsunuz. Biraz bekleyiniz. + invalid-api-key: Arka tarafla iletişim kurulamadı, lütfen oyunu + güncellemeyi/yeniden başlatmayı deneyiniz (Geçersiz Api Anahtarı). + unauthorized: Arka tarafla iletişim kurulamadı, lütfen oyunu + güncellemeyi/yeniden başlatmayı deneyiniz (Yetkisiz erişim). + bad-token: Arka tarafla iletişim kurulamadı, lütfen oyunu güncellemeyi/yeniden + başlatmayı deneyiniz (Kötü Anahtar). + bad-id: Geçersiz Yapboz tanımlayıcısı (ID). + not-found: İstenilen Yapboz bulunamadı. + bad-category: İstenilen kategori bulunamadı. + bad-short-key: Girilen kısa anahtar geçersiz. + profane-title: Yapboz ismi ayrımcı kelimeler(din,dil,ırk) içeriyor. + bad-title-too-many-spaces: Yapboz ismi çok kısa. + bad-shape-key-in-emitter: Bir sabit üreticide geçersiz bir eşya mevcut. + bad-shape-key-in-goal: Bir hedef merkezinde geçersiz bir eşya mevcut. + no-emitters: Yapbozda hiç sabit üretici yok. + no-goals: Yapbozda hiç hedef merkezi yok. + short-key-already-taken: Bu kısa anahtar kullanılıyor, lütfen başka bir tane kullanınız. + can-not-report-your-own-puzzle: Kendi yapbozunuzu şikayet edemezsiniz. + bad-payload: İstek geçersiz veri içeriyor. + bad-building-placement: Yapbozunuzda uygun yerleştirilmeyen yapılar mevcut. + timeout: İstek zaman aşımına uğradı. + too-many-likes-already: Yapbozun zaten çok beğenisi var. Yine de silmek + istiyorsanız support@shapez.io ile iletişime geçiniz! + no-permission: Bu işlemi yapmak için izniniz yok. diff --git a/translations/base-uk.yaml b/translations/base-uk.yaml index eddd4210..03071b1d 100644 --- a/translations/base-uk.yaml +++ b/translations/base-uk.yaml @@ -1,33 +1,7 @@ -# -# GAME TRANSLATIONS -# -# Contributing: -# -# If you want to contribute, please make a pull request on this respository -# and I will have a look. -# -# Placeholders: -# -# Do *not* replace placeholders! Placeholders have a special syntax like -# `Hotkey: <key>`. They are encapsulated within angle brackets. The correct -# translation for this one in German for example would be: `Taste: <key>` (notice -# how the placeholder stayed '<key>' and was not replaced!) -# -# Adding a new language: -# -# If you want to add a new language, ask me in the Discord and I will setup -# the basic structure so the game also detects it. -# - ---- steamPage: - # This is the short text appearing on the steam page shortText: shapez.io — це гра про будування фабрик для автоматизації створення та обробки все більш складних форм на нескінченно розширюваній карті. - - # This is the text shown above the Discord link discordLinkShort: Official Discord - intro: >- Shapez.io - розслабляюча гра, в якій вам потрібно будувати фабрики для автоматизованого виробництва геометричних фігур. @@ -39,66 +13,26 @@ steamPage: Спочатку ви лише обробляєте фігури, пізніше їх потрібно буде ще й фарбувати - для цього необхідно буде видобувати та змішувати кольори! Купуючи гру в Steam ви отримаєте доступ до повної версії гри, але ви також можете спробувати демо-версію гри на shapez.io та вирішити пізніше! - - title_advantages: Переваги повної версії - advantages: - - <b>12 нових рівнів</b> що в цілому 26 рівнів - - <b>18 нових будівель</b> для повної автоматизації фабрики! - - <b>20 рівнів поліпшення</b> для довготривалої та веселої гри! - - <b>Оновлення "Wires"(Дроти)</b> для цілого нового виміру! - - <b>Нічний режим</b>! - - Необмежена кільксть збережень - - Необмежена кільксть позначок - - Підтримка автора! ❤️ - - title_future: Запланований вміст - planned: - - Бібліотека креслень (лише в Повній версії) - - Досягнення в Steam - - Режим головоломок - - Мінікарта - - Модифікації - - Режим пісочниці - - ... та багато іншого! - - title_open_source: Гра з відкритим кодом! - text_open_source: >- - Будь-хто може зробити свій внесок. Я активно беру участь у спільноті та - намагаюсь переглянути всі пропозиції та враховувати відгуки. - - Не забудьте перевірити дошку trello, щоб отримати розгорнутий список планів! - - title_links: Посилання - - links: - discord: Офіційний Discord - roadmap: Плани - subreddit: Subreddit - source_code: Вихідний код (GitHub) - translate: Допомогти з перекладом - + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: loading: Завантаження error: Помилка - - # How big numbers are rendered, e.g. "10,000" thousandsDivider: " " - - # What symbol to use to seperate the integer part from the fractional part of a number, e.g. "0.4" decimalSeparator: "," - - # The suffix for large numbers, e.g. 1.3k, 400.2M, etc. suffix: thousands: тис. millions: млн billions: млрд trillions: трлн - - # Shown for infinitely big numbers infinite: неск. - time: - # Used for formatting past time dates oneSecondAgo: одну секунду тому xSecondsAgo: <x> секунд тому oneMinuteAgo: хвилину тому @@ -107,12 +41,9 @@ global: xHoursAgo: <x> годин тому oneDayAgo: один день тому xDaysAgo: <x> днів тому - - # Short formats for times, e.g. '5h 23m' secondsShort: <seconds>сек. minutesAndSecondsShort: <minutes>хв. <seconds>сек. hoursAndMinutesShort: <hours>год. <minutes>хв. - xMinutes: <x> хв. keys: tab: TAB @@ -121,13 +52,10 @@ global: escape: ESC shift: SHIFT space: SPACE - + loggingIn: Logging in demoBanners: - # This is the "advertisement" shown in the main menu and other various places title: Демо-версія - intro: >- - Завантажте повну версію, щоб розблокувати всі можливості та вміст! - + intro: Завантажте повну версію, щоб розблокувати всі можливості та вміст! mainMenu: play: Грати continue: Продовжити @@ -139,17 +67,18 @@ mainMenu: discordLink: Офіційний Discord сервер helpTranslate: Допоможіть з перекладом! madeBy: Зробив <author-link> - - # This is shown when using firefox and other browsers which are not supported. - browserWarning: >- - Вибачте, але гра, як відомо, працює повільно у вашому браузері! - Завантажте повну версію чи Google Chrome, щоб отримати більше задоволення від - гри. - + browserWarning: Вибачте, але гра, як відомо, працює повільно у вашому браузері! + Завантажте повну версію чи Google Chrome, щоб отримати більше + задоволення від гри. savegameLevel: Рівень <x> savegameLevelUnknown: Невідомий рівень savegameUnnamed: Unnamed - + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: Гаразд @@ -163,147 +92,173 @@ dialogs: viewUpdate: Переглянути оновлення showUpgrades: Показати поліпшення showKeybindings: Показати прив’язки клавіш - + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: Помилка при імпортуванні - text: >- - Не вдалося імпортувати вашу збережену гру: - + text: "Не вдалося імпортувати вашу збережену гру:" importSavegameSuccess: title: Збереження імпортовано - text: >- - Вашу збережену гру успішно імпортовано. - + text: Вашу збережену гру успішно імпортовано. gameLoadFailure: title: Гра поламана - text: >- - Не вдалося завантажити вашу збережену гру. - + text: Не вдалося завантажити вашу збережену гру. confirmSavegameDelete: title: Підтвердження видалення - text: >- - Ви дійсно бажаєте видалити цю збережену гру?<br><br> - '<savegameName>' яка <savegameLevel> рівня<br><br> - Цю дію неможливо буде відмінити! - + text: Ви дійсно бажаєте видалити цю збережену гру?<br><br> '<savegameName>' яка + <savegameLevel> рівня<br><br> Цю дію неможливо буде відмінити! savegameDeletionError: title: Не вдалось видалити - text: >- - Не вдалося видалити збережену гру: - + text: "Не вдалося видалити збережену гру:" restartRequired: title: Потрібне перезавантаження - text: >- - Перезавантажте гру, щоб налаштування вступили в дію. - + text: Перезавантажте гру, щоб налаштування вступили в дію. editKeybinding: title: Зміна гарячої клавіши - desc: Натисніть клавішу, або кнопку миші, яку ви хочете призначити, або escape для скасування. - + desc: Натисніть клавішу, або кнопку миші, яку ви хочете призначити, або escape + для скасування. resetKeybindingsConfirmation: title: Скинути гарячі клавіші desc: Це скине всі прив'язки клавіш до їхніх значень за замовчуванням. Будь ласка, підтвердіть. - keybindingsResetOk: title: Гарячі клавіші скинуто desc: Гарячі клавіши скинуто до їхніх початкових значень! - featureRestriction: title: Демо-версія - desc: >- - Ви спробували отримати доступ до функції (<feature>), яка недоступна в + desc: Ви спробували отримати доступ до функції (<feature>), яка недоступна в демонстраційній версії. Подумайте про отримання повної версії, щоб насолодитися грою сповна! - oneSavegameLimit: title: Обмежені збереження desc: Ви можете мати лише одне збереження одночасно в демо-версії. Будь ласка, видаліть існуюче збереження чи купіть повну версію гри! - updateSummary: title: Нове оновлення! - desc: >- - Ось зміни з вашої останньої гри: - + desc: "Ось зміни з вашої останньої гри:" upgradesIntroduction: title: Розблокування поліпшень - desc: >- - Усі фігури, що ви виробляєте, можуть використовуватися для розблокування + desc: Усі фігури, що ви виробляєте, можуть використовуватися для розблокування поліпшень - <strong>радимо не видаляти старі фабрики!<strong> Вкладку з поліпшеннями можна знайти в правому верхньому куті екрана. - massDeleteConfirm: title: Підтвердження видалення - desc: >- - Ви видаляєте багато будівль (<count>, якщо бути точним)! Ви справді хочете + desc: Ви видаляєте багато будівль (<count>, якщо бути точним)! Ви справді хочете зробити це? - massCutConfirm: title: Підтвердження вирізання - desc: >- - Ви вирізаєте багато будівль(<count>, якщо бути точним)! Ви справді хочете + desc: Ви вирізаєте багато будівль(<count>, якщо бути точним)! Ви справді хочете зробити це? - massCutInsufficientConfirm: title: Підтвердити вирізання - desc: >- - Ви не можете дозволити собі вставити цю область! Ви справді хочете + desc: Ви не можете дозволити собі вставити цю область! Ви справді хочете вирізати її? - blueprintsNotUnlocked: title: Ще не розблоковано - desc: >- - Досягніть 13-го рівня, щоб розблокувати креслення! - + desc: Досягніть 13-го рівня, щоб розблокувати креслення! keybindingsIntroduction: title: Корисні гарячі клавіши - desc: >- - Гра має багато гарячих клавіш, що полегшують будівництво великих фабрик. - Ось декілька, але обов’язково <strong>ознайомтеся з прив’язками клавіш</strong>!<br><br> - <code class='keybinding'>CTRL</code> + тягніть: виділити зону.<br> - <code class='keybinding'>SHIFT</code>: тримайте, щоб розмістити декілька копій однієї будівлі.<br> - <code class='keybinding'>ALT</code>: змінити напрям розміщеної конвеєрної стрічки.<br> - + desc: "Гра має багато гарячих клавіш, що полегшують будівництво великих фабрик. + Ось декілька, але обов’язково <strong>ознайомтеся з прив’язками + клавіш</strong>!<br><br> <code class='keybinding'>CTRL</code> + + тягніть: виділити зону.<br> <code class='keybinding'>SHIFT</code>: + тримайте, щоб розмістити декілька копій однієї будівлі.<br> <code + class='keybinding'>ALT</code>: змінити напрям розміщеної конвеєрної + стрічки.<br>" createMarker: title: Нова позначка titleEdit: Редагувати позначку desc: Дайте їй інформативну назву, ви також можете використати <strong>код </strong> фігури (Який ви можете створити <link>тут</link>) - editSignal: title: Встановити сигнал - descItems: >- - Виберіть попередньо визначений елемент: - descShortKey: ... або введіть <strong>код</strong> фігури (Який ви - можете створити <link>тут</link>) - + descItems: "Виберіть попередньо визначений елемент:" + descShortKey: ... або введіть <strong>код</strong> фігури (Який ви можете + створити <link>тут</link>) markerDemoLimit: - desc: Ви можете створити тільки 2 позначки в демо-версії. Отримайте повну версію гри - для створення необмеженної кількості позначок. - + desc: Ви можете створити тільки 2 позначки в демо-версії. Отримайте повну версію + гри для створення необмеженної кількості позначок. exportScreenshotWarning: title: Експортувати знімок - desc: Ви запросили експорт бази в зображення. Зверніть увагу, що для - великої бази це може бути досить повільним процесом і може навіть - зруйнувати вашу гру! - + desc: Ви запросили експорт бази в зображення. Зверніть увагу, що для великої + бази це може бути досить повільним процесом і може навіть зруйнувати + вашу гру! renameSavegame: title: Перейменувати збереження desc: Тут ви можете перейменувати збереження гри. - tutorialVideoAvailable: title: Доступна інструкція desc: Для цього рівня доступна відео-інструкція! Чи бажаєте переглянути її? - tutorialVideoAvailableForeignLanguage: title: Доступна інструкція - desc: Для цього рівня доступна відео-інструкція, але вона доступна - лише на Англійській. Чи бажаєте переглянути її? - + desc: Для цього рівня доступна відео-інструкція, але вона доступна лише на + Англійській. Чи бажаєте переглянути її? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: - # This is shown in the top left corner and displays useful keybindings in - # every situation keybindingsOverlay: moveMap: Рухатися selectBuildings: Виділити область @@ -324,8 +279,7 @@ ingame: clearSelection: Очистити виділене pipette: Піпетка switchLayers: Змінити шар - - # Names of the colors, used for the color blind mode + clearBelts: Clear belts colors: red: Червоний green: Зелений @@ -336,15 +290,9 @@ ingame: white: Білий black: Чорний uncolored: Без кольору - - # Everything related to placing buildings (I.e. as soon as you selected a building - # from the toolbar) buildingPlacement: cycleBuildingVariants: Натисніть <key> для перебору варіантів. - - # Shows the hotkey in the ui, e.g. "Hotkey: Q" hotkeyLabel: "Гаряча клавіша: <key>" - infoTexts: speed: Швидкість range: Дальність @@ -352,33 +300,21 @@ ingame: oneItemPerSecond: 1 предмет/сек. itemsPerSecond: <x> предм./сек itemsPerSecondDouble: (x2) - tiles: <x> плиток - - # The notification when completing a level levelCompleteNotification: - # <level> is replaced by the actual level, so this gets 'Level 03' for example. levelTitle: Рівень <level> completed: Завершено unlockText: Розблоковано «<reward>»! buttonNextLevel: Наступний рівень - - # Notifications on the lower right notifications: newUpgrade: Нове поліпшення розблоковано! gameSaved: Вашу гру збережено. freeplayLevelComplete: Рівень <level> було завершено! - - # The "Upgrades" window shop: title: Поліпшення buttonUnlock: Відкрити - # Gets replaced to e.g. "Tier IX" tier: Ранг <x> - maximumLevel: МАКСИМАЛЬНИЙ РІВЕНЬ (Швидкість x<currentMult>) - - # The "Statistics" window statistics: title: Статистика dataSources: @@ -393,153 +329,149 @@ ingame: title: Доставляється description: Відображає форми, що доставляються до Центру. noShapesProduced: Жодна фігура поки не випускається. - - # Displays the shapes per second, e.g. '523 / s' shapesDisplayUnits: second: <shapes> / с minute: <shapes> / хв hour: <shapes> / г - - # Settings menu, when you press "ESC" settingsMenu: playtime: У грі buildingsPlaced: Будівель beltsPlaced: Конвеєрів - - # Bottom left tutorial hints tutorialHints: title: Потрібна допомога? showHint: Показати підказку hideHint: Закрити - - # When placing a blueprint blueprintPlacer: cost: Вартість - - # Map markers waypoints: waypoints: Позначки hub: Центр - description: <strong>ЛКМ</strong> на позначку, щоб перейти до неї, <strong>ПКМ</strong> для - видалення<br><br>Натисніть <keybinding> для створення позначки з - поточного виду або <strong>ПКМ</strong>, щоб створити позначку в - обраному місці. + description: Натисніть ліву кнопку миші на позначці, щоб переміститися до неї, + праву - для її видалення.<br><br>Натисніть <keybinding> щоб створити + позначку на місці вашої камери, або <strong>праву кнопку + миші</strong>, щоб створити її в положенні курсора. creationSuccessNotification: Позначку створено. - - # Shape viewer shapeViewer: title: Шари empty: Пустий copyKey: Копіювати ключ - - # Interactive tutorial interactiveTutorial: title: Навчання hints: 1_1_extractor: Розмістіть <strong>екстрактор</strong> поверх <strong>фігури кола</strong>, щоб видобути її! - - 1_2_conveyor: >- - З’єднайте екстрактор з вашим центром за допомогою + 1_2_conveyor: "З’єднайте екстрактор з вашим центром за допомогою <strong>конвеєрної стрічки</strong>!<br><br>Підказка: - <strong>Натисніть і протягніть</strong> стрічку вашою мишею. - - 1_3_expand: >- - У цій грі <strong>ВАМ НЕ ПОТРІБНО БЕЗДІЯТИ</strong>! Будуйте більше + <strong>Натисніть і протягніть</strong> стрічку вашою мишею." + 1_3_expand: "У цій грі <strong>ВАМ НЕ ПОТРІБНО БЕЗДІЯТИ</strong>! Будуйте більше екстракторів і стрічок, щоб виконати свою мету швидше.<br><br>Підказка: Утримуйте <strong>SHIFT</strong>, щоб розмістити багато екстракторів, і використовуйте - <strong>R</strong>, щоб обертати їх. - - 2_1_place_cutter: >- - Тепер розмістіть <strong>Різчик</strong> щоб розрізати коло на дві - половинки!<br><br> PS: Різчик завжди ділить фігуру <strong> по вертикалі - </strong> незалежного від його орієнтації. - - 2_2_place_trash: >- - Різчик може <strong>забиватись</strong>!<br><br> Використовуйте - <strong>Смітник</strong> аби позбутись поки що(!) не - потрібних залишків. - - 2_3_more_cutters: >- - Чудово! Тепер розмістіть <strong>ще 2 різчика</strong> щоб прискорити - цей повільний процес!<br><br> PS: Використовуте <strong>0-9 - гарячі клавіші</strong> аби мати швидкий доступ до будівель! - - 3_1_rectangles: >- - Тепер давайте добудемо квадратів! <strong>Збудуйте 4 + <strong>R</strong>, щоб обертати їх." + 2_1_place_cutter: "Тепер розмістіть <strong>Різчик</strong> щоб розрізати коло + на дві половинки!<br><br> PS: Різчик завжди ділить фігуру + <strong> по вертикалі </strong> незалежного від його + орієнтації." + 2_2_place_trash: Різчик може <strong>забиватись</strong>!<br><br> Використовуйте + <strong>Смітник</strong> аби позбутись поки що(!) не потрібних + залишків. + 2_3_more_cutters: "Чудово! Тепер розмістіть <strong>ще 2 різчика</strong> щоб + прискорити цей повільний процес!<br><br> PS: Використовуте + <strong>0-9 гарячі клавіші</strong> аби мати швидкий доступ до + будівель!" + 3_1_rectangles: "Тепер давайте добудемо квадратів! <strong>Збудуйте 4 Екстрактори</strong> і приєднайте їх до Центру.<br><br> PS: - Утримуйте <strong>SHIFT</strong> + тягнути для переходу в режим планувальника конвеєрів! - - 21_1_place_quad_painter: >- - Розмістіть <strong>Фарбувач (х4)</strong> та добудьте + Утримуйте <strong>SHIFT</strong> + тягнути для переходу в режим + планувальника конвеєрів!" + 21_1_place_quad_painter: Розмістіть <strong>Фарбувач (х4)</strong> та добудьте <strong>коло</strong>, <strong>білий</strong> та <strong>червоний</strong> кольори! - - 21_2_switch_to_wires: >- - Перейдіть в шар проводів натиснувши + 21_2_switch_to_wires: Перейдіть в шар проводів натиснувши <strong>E</strong>!<br><br> Та <strong>підключіть всі 4 вводи</strong> фарбувальника за допомогою проводу! - - 21_3_place_button: >- - Неймовірно! Тепер розмістіть <strong>Вимикач</strong> Та з'єднайте їх - дротом! - - 21_4_press_button: >- - Натисніть вимикач, аби він почав <strong>видавати сигнал "Істина" - </strong> активувавши таким чином фарбувальник.<br><br> PS: Не обов'язково - підключати всі входи! Спробуйте підключити лише два. - - # Connected miners + 21_3_place_button: Неймовірно! Тепер розмістіть <strong>Вимикач</strong> Та + з'єднайте їх дротом! + 21_4_press_button: "Натисніть вимикач, аби він почав <strong>видавати сигнал + \"Істина\" </strong> активувавши таким чином + фарбувальник.<br><br> PS: Не обов'язково підключати всі входи! + Спробуйте підключити лише два." connectedMiners: one_miner: 1 Екстрактор n_miners: <amount> Екстракторів limited_items: Обмежено до <max_throughput> - - # Pops up in the demo every few minutes watermark: title: Демо-версія desc: Натисніть сюди аби переглянути переваги Steam версії! get_on_steam: Отримати в Steam - standaloneAdvantages: title: Отримати повну версію! no_thanks: Ні, дякую! - points: levels: title: 12 нових Рівнів desc: В цілому 26 рівнів! - buildings: title: 18 нових Будівель desc: Для повної автоматизації вашої фабрики! - - savegames: - title: ∞ Збережень - desc: Стільки, скільки вашій душі завгодно! - upgrades: title: ∞ рівнів Поліпшень desc: Демо-версія має лише 5! - markers: title: ∞ Позначок desc: Забудьте про блукання по фабриці! - wires: title: Дроти desc: Цілий новий вимір! - darkmode: title: Нічний режим desc: Дайте очам відпочити! - support: title: Підтримайте мене desc: Я розробляю гру в свій вільний час! - -# All shop upgrades + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: name: Стрічки, розподілювачі і тунелі @@ -553,80 +485,63 @@ shopUpgrades: painting: name: Змішування і малювання description: Шв. x<currentMult> → x<newMult> - -# Buildings and their name / description buildings: hub: deliver: Доставте, toUnlock: щоб розблокувати levelShortcut: РІВ endOfDemo: Кінець Демки - belt: default: - name: &belt Конвеєрна стрічка + name: Конвеєрна стрічка description: Транспортує предмети, утримуйте і перетягуйте для розміщення декількох. - - # Internal name for the Extractor miner: default: - name: &miner Екстрактор + name: Екстрактор description: Розмістіть над фігурою чи кольором, який хочете видобути. - chainable: name: Екстрактор (Ланц.) description: Розмістіть над фігурою чи кольором, який хочете видобути. Можна об’єднати в ланцюг. - - # Internal name for the Tunnel underground_belt: default: - name: &underground_belt Тунель + name: Тунель description: Дозволяє транспортувати ресурси під будівлями та іншими стрічками. - tier2: name: Тунель, ранг II description: Дозволяє транспортувати ресурси під будівлями та іншими стрічками. - - # Balancer balancer: default: - name: &balancer Балансир - description: Багатофункціональний - Рівномірно розподіляє всі входи між всіма виходами. - + name: Балансир + description: Багатофункціональний - Рівномірно розподіляє всі входи між всіма + виходами. merger: name: З'єднувач description: З'єднує дві конвеєрних стрічки в одну. - merger-inverse: name: З'єднувач description: З'єднує дві конвеєрних стрічки в одну. - splitter: name: Розподілювач description: Поділяє конвеєрну стрічку на дві. - splitter-inverse: name: Розподілювач description: Поділяє конвеєрну стрічку на дві. - cutter: default: - name: &cutter Різчик + name: Різчик description: Розрізає фігури зверху вниз і виводить обидві половинки. <strong>Якщо ви використовуєте лише одну частину, не забудьте - знищити іншу, інакше вона застрягне в - механізмі!</strong> + знищити іншу, інакше вона застрягне в механізмі!</strong> quad: name: Різчик (4 вих.) description: Розрізає фігури на 4 частини. <strong>Якщо ви використовуєте не всі - частини, не забудьте знищити решту, інакше вони застрягнуть - в механізмі!</strong> - + частини, не забудьте знищити решту, інакше вони застрягнуть в + механізмі!</strong> rotater: default: - name: &rotater Обертач + name: Обертач description: Обертає фігури за годинниковою стрілкою на 90 градусів. ccw: name: Обертач (-90) @@ -634,266 +549,241 @@ buildings: rotate180: name: Обертач (180) description: Обертає фігури за годинниковою стрілкою на 180 градусів. - stacker: default: - name: &stacker Укладальник + name: Укладальник description: Складає обидва елементи. Якщо їх неможливо об’єднати, правий елемент розміщується над лівим елементом. - mixer: default: - name: &mixer Змішувач кольорів + name: Змішувач кольорів description: Змішує два кольори за допомогою добавки. - painter: default: - name: &painter Фарбувач - description: &painter_desc Фарбує всю фігуру з лівого входу в колір з верхнього входу. - + name: Фарбувач + description: Фарбує всю фігуру з лівого входу в колір з верхнього входу. mirrored: - name: *painter + name: Фарбувач description: Фарбує всю фігуру з лівого входу в колір з нижнього входу. - double: name: Подвійний Фарбувач description: Фарбує фігури, що надійшли з лівих входів, кольором, що надійшов з верхнього. - quad: name: Фарбувач (х4) - description: Дозволяє вам розфарбувати кожну частину окремо. Лише - частини з <strong>сигналом "Істина"</strong> на шарі Дротів - буде пофабровано! - + description: Дозволяє вам розфарбувати кожну частину окремо. Лише частини з + <strong>сигналом "Істина"</strong> на шарі Дротів буде + пофабровано! trash: default: - name: &trash Смітник + name: Смітник description: Приймає фігури зі всіх сторін і знищує їх. Назавжди. - storage: default: - name: &storage Сховище - description: Зберігає надлишкові предмети, до заданої ємності. Лівий вихід пріоритетний, - може бути використаний як переповнювальний затвор. - + name: Сховище + description: Зберігає надлишкові предмети, до заданої ємності. Лівий вихід + пріоритетний, може бути використаний як переповнювальний затвор. wire: default: - name: &wire Дріт - description: &wire_desc Передає сигнали, якими можуть бути фігури, кольори чи логічні сигнали (1 чи 0). Дроти різних кольорів не приєднуються один до одного. - + name: Дріт + description: Передає сигнали, якими можуть бути фігури, кольори чи логічні + сигнали (1 чи 0). Дроти різних кольорів не приєднуються один до + одного. second: - name: *wire - description: *wire_desc - + name: Дріт + description: Передає сигнали, якими можуть бути фігури, кольори чи логічні + сигнали (1 чи 0). Дроти різних кольорів не приєднуються один до + одного. wire_tunnel: default: - name: &wire_tunnel Пересічення дроту + name: Пересічення дроту description: Дозволяє двом дротам пересіктись не підключаючись один до одного. - constant_signal: default: - name: &constant_signal Постійний Сигнал - description: Видає постійний сигнал, яким може бути фігура, колір чи - логічний сигнал (1 / 0). - + name: Постійний Сигнал + description: Видає постійний сигнал, яким може бути фігура, колір чи логічний + сигнал (1 / 0). lever: default: - name: &lever Вимикач + name: Вимикач description: Можна перемикати видачу логічного сигналу (1 / 0) на шар дротів, - цей сигнал може бути використаний для управління компонентами, наприклад Фільтром елементів. - + цей сигнал може бути використаний для управління компонентами, + наприклад Фільтром елементів. logic_gate: default: name: Логічне "І" - description: - Видає логічну "1" якщо обидва вводи отримують сигнал "Істинний". (Під "Істинний" мається наувазі фігура, - колір чи логічна "1") + description: Видає логічну "1" якщо обидва вводи отримують сигнал "Істинний". + (Під "Істинний" мається наувазі фігура, колір чи логічна "1") not: name: Логічне "НЕ" - description: Видає логічну "1" якщо вхід отримує сигнал "Хибний". ("Хибний" сигнал - протилежний "Істинному", і відповідає логічному "0") + description: Видає логічну "1" якщо вхід отримує сигнал "Хибний". ("Хибний" + сигнал - протилежний "Істинному", і відповідає логічному "0") xor: name: Виключне "АБО" description: Видає логічну "1" якщо лише один з вводів "Істинний", но не обидва. (Під "Істинний" мається наувазі фігура, колір чи логічна "1") or: name: Логічне "АБО" - description: Видає логічну "1" якщо хоча б один з вводів "Істинний". - (Під "Істинний" мається наувазі фігура, колір чи логічна "1") - + description: Видає логічну "1" якщо хоча б один з вводів "Істинний". (Під + "Істинний" мається наувазі фігура, колір чи логічна "1") transistor: default: - name: &transistor Транзистор - description: &transistor_desc Пропускає нижній сигнал якщо боковий вхід "Істинний" (фігура, - колір чи логічна "1"). - + name: Транзистор + description: Пропускає нижній сигнал якщо боковий вхід "Істинний" (фігура, колір + чи логічна "1"). mirrored: - name: *transistor - description: *transistor_desc - + name: Транзистор + description: Пропускає нижній сигнал якщо боковий вхід "Істинний" (фігура, колір + чи логічна "1"). filter: default: - name: &filter Фільтр - description: Підключіть сигнал щоб направити всі відповідні елементи вгору, а решту вправо. - Також ним можна керувати за допомогою логічних сигналів (1 / 0). - + name: Фільтр + description: Підключіть сигнал щоб направити всі відповідні елементи вгору, а + решту вправо. Також ним можна керувати за допомогою логічних + сигналів (1 / 0). display: default: - name: &display Дисплей - description: Підключіть сигнал, аби відобразити його на дисплеї - ним може бути фігура, - колір чи логічний сигнал - + name: Дисплей + description: Підключіть сигнал, аби відобразити його на дисплеї - ним може бути + фігура, колір чи логічний сигнал reader: default: - name: &reader Зчитувач конвеєєра - description: - Дозволяє вимірювати середню пропускну здатність конвеєрної стрічки. Видає сигнал останнього зчитаного елемента - на шар дротів (коли розблоковано). - + name: Зчитувач конвеєєра + description: Дозволяє вимірювати середню пропускну здатність конвеєрної стрічки. + Видає сигнал останнього зчитаного елемента на шар дротів (коли + розблоковано). analyzer: default: - name: &analyzer Дослідник фігур - description: Аналізує верхню-праву частину самого нижнього слою фігури - та повертає її форму і колір. - + name: Дослідник фігур + description: Аналізує верхню-праву частину самого нижнього слою фігури та + повертає її форму і колір. comparator: default: - name: &comparator Компаратор - description: Видає логічну "1" якщо обидва сигнали абсолютно рівні. Може порівнювати - фігури, елементи та кольори. - + name: Компаратор + description: Видає логічну "1" якщо обидва сигнали абсолютно рівні. Може + порівнювати фігури, елементи та кольори. virtual_processor: default: - name: &virtual_processor Віртуальний Різчик + name: Віртуальний Різчик description: Віртуально розрізає фігуру на дві половинки. - rotater: name: Віртуальний Обертач description: Віртуально обертає фігуру по часовій стрілці, та проти. - unstacker: name: Віртуальний Розпаковувач - description: Віртуально видобуває верхній шар фігури на правий вихід, а решту на лівий вихід. - + description: Віртуально видобуває верхній шар фігури на правий вихід, а решту на + лівий вихід. stacker: name: Віртуальний Укладальник description: Віртуально складає праву фігуру на ліву. - painter: name: Віртуальний Фарбувач - description: Віртуально фарбує фігуру з нижнього вводу, використовуючи колір з правого вводу. - + description: Віртуально фарбує фігуру з нижнього вводу, використовуючи колір з + правого вводу. item_producer: default: name: Генератор елементів - description: Доступно лише в режимі Пісочниці, видає отриманий на шарі дроту сигнал в якості фігури на звичайний шар. - + description: Доступно лише в режимі Пісочниці, видає отриманий на шарі дроту + сигнал в якості фігури на звичайний шар. + constant_producer: + default: + name: Constant Producer + description: Constantly outputs a specified shape or color. + goal_acceptor: + default: + name: Goal Acceptor + description: Deliver shapes to the goal acceptor to set them as a goal. + block: + default: + name: Block + description: Allows you to block a tile. storyRewards: - # Those are the rewards gained from completing the story reward_cutter_and_trash: title: Різання фігур - desc: Ви щойно відкрили <strong>Різчик</strong>, який ріже фігури навпіл - зверху вниз <strong>незалежно від його орієнтації</strong>!<br><br> - Обов'язково позбудьтесь відходів, інакше - <strong>вони застрягнуть</strong> - Для цих цілей - я дав вам <strong>Смітник</strong>, який знищує все що ви туда направите! - + desc: Ви щойно відкрили <strong>Різчик</strong>, який ріже фігури навпіл зверху + вниз <strong>незалежно від його орієнтації</strong>!<br><br> + Обов'язково позбудьтесь відходів, інакше <strong>вони + застрягнуть</strong> - Для цих цілей я дав вам + <strong>Смітник</strong>, який знищує все що ви туда направите! reward_rotater: title: Обертання desc: <strong>Обертач</strong> розблоковано! Він повертає фігури за годинниковою стрілкою на 90 градусів. - reward_painter: title: Фарбування - desc: >- - <strong>Фарбувач</strong> розблоковано. Видобудьте трохи кольорів з + desc: <strong>Фарбувач</strong> розблоковано. Видобудьте трохи кольорів з відповідних жилок (як ви зробили це з фігурами) і об’єднайте їх з фігурами у фарбувачі, щоб розфарбувати фігури!<br><br>До речі, для - дальтоніків, доступний <strong>режим високої - контрастності</strong> в налаштуваннях! - + дальтоніків, доступний <strong>режим високої контрастності</strong> + в налаштуваннях! reward_mixer: title: Змішування кольорів desc: <strong>Змішувач кольорів</strong> було відкрито - Він змішує два кольори шляхом <strong>добавки</strong>! - reward_stacker: title: Поєднання фігур - desc: Тепер ви можете поєднувати фігури з <strong>Укладальником</strong>! - Фігури об’єднуються з двох сторін, і якщо їх можна поставити поруч, - вони будуть <strong>з’єднані</strong>. Якщо ні, то фігуру, що подана - з правого входу, <strong>буде накладено</strong> на фігуру з лівого входу. - + desc: Тепер ви можете поєднувати фігури з <strong>Укладальником</strong>! Фігури + об’єднуються з двох сторін, і якщо їх можна поставити поруч, вони + будуть <strong>з’єднані</strong>. Якщо ні, то фігуру, що подана з + правого входу, <strong>буде накладено</strong> на фігуру з лівого + входу. reward_balancer: title: Балансир desc: Багатофункціональний <strong>Балансир</strong> було відкрито - Він - використовується для будування більших фабрик шляхом <strong>розподілу чи змішування - елементів</strong> між кількома конвеєрними стрічками! - + використовується для будування більших фабрик шляхом + <strong>розподілу чи змішування елементів</strong> між кількома + конвеєрними стрічками! reward_tunnel: title: Тунель desc: <strong>Тунель</strong> розблоковано. Ви можете створювати тунелі для преметів через стрічки і будівлі. - reward_rotater_ccw: title: Обертання проти годинникової стрілки desc: Ви розблокували новий варіант <strong>обертача</strong>. Він дозволяє обертати проти годинникової стрілки! Щоб побудувати його виберіть обертач, <strong>натисніть «T», щоб переглянути всі варіанти, та оберіть потрібний</strong>! - reward_miner_chainable: title: Екстрактор (ланцюг.) - desc: >- - Ви відкрили <strong>Ланцюговий Екстрактор</strong>! Він може - <strong>направляти свої ресурси</strong> в інший екстрактор - так ви зможете добувати ресурси більш ефективно!<br><br> PS: Звичаний Екстрактор - було замінено на вашій панелі інструментів! - + desc: "Ви відкрили <strong>Ланцюговий Екстрактор</strong>! Він може + <strong>направляти свої ресурси</strong> в інший екстрактор так ви + зможете добувати ресурси більш ефективно!<br><br> PS: Звичаний + Екстрактор було замінено на вашій панелі інструментів!" reward_underground_belt_tier_2: title: Тунель II desc: Ви розблокували новий варіант <strong>тунеля</strong>. Він має <strong>більшу дальність</strong>, і ви можете також змішувати і зіставляти ці тунелі! - reward_merger: title: З'єднувач - desc: >- - Ви відкрили <strong>З'єднувач</strong> - різновид - <strong>балансиру</strong> - Приймає два вводи, та з'єднує їх - в одину конвеєрну стрічку! - + desc: Ви відкрили <strong>З'єднувач</strong> - різновид + <strong>балансиру</strong> - Приймає два вводи, та з'єднує їх в + одину конвеєрну стрічку! reward_splitter: title: Розподілювач - desc: >- - Ви відкрили <strong>Розподілювач</strong> - різновид - <strong>балансиру</strong> - Приймає один ввід, та розподілює їх на два! - + desc: Ви відкрили <strong>Розподілювач</strong> - різновид + <strong>балансиру</strong> - Приймає один ввід, та розподілює їх на + два! reward_belt_reader: title: Зчитувач конвеєєра - desc: >- - Ви відкрили <strong>Зчитувач конвеєєра</strong>! Дає вам змогу - вимірювати пропускну здатність конвеєрної стрічки.<br><br>Зачекайте поки відкриєте шар - дротів - тоді він стане ще кориснішим! - + desc: Ви відкрили <strong>Зчитувач конвеєєра</strong>! Дає вам змогу вимірювати + пропускну здатність конвеєрної стрічки.<br><br>Зачекайте поки + відкриєте шар дротів - тоді він стане ще кориснішим! reward_cutter_quad: title: Різчик (чотири) desc: Ви розблокували інший варіант <strong>різчика</strong>. Він може розрізати фігури на <strong>чотири частини</strong> замість двох. - reward_painter_double: title: Подвійний Фарбувач desc: Ви розблокували інший варіант <strong>фарбувача</strong>. Він працює як звичайний фарбувач, але обробляє <strong>дві фігури одночасно</strong>, споживаючи лише один колір замість двох! - reward_storage: title: Сховище - desc: >- - Ви відкрили <strong>Сховище</strong> - Воно дає вам змогу - зберігати елементи до заданої місткості!<br><br> Лівий вихід є пріоритетним, - ви також можете використовувати його як <strong>переповнювальний затвор</strong>! - + desc: Ви відкрили <strong>Сховище</strong> - Воно дає вам змогу зберігати + елементи до заданої місткості!<br><br> Лівий вихід є пріоритетним, + ви також можете використовувати його як <strong>переповнювальний + затвор</strong>! reward_blueprints: title: Креслення desc: Ви вже можете <strong>копіювати і вставляти</strong> частини вашої @@ -902,98 +792,76 @@ storyRewards: <strong>річ не безкоштовна</strong>, спочатку вам потрібно створити <strong>фігури креслень</strong>, щоб собі це дозволити! (ті, що ви щойно доставили). - reward_rotater_180: title: Обертач (180 градусів) - desc: Ви щойно відкрили <strong>Обертач</strong> на 180! - Він повертає фігури за годинниковою стрілкою на 180 градусів. (Сюрприз! :D) - + desc: Ви щойно відкрили <strong>Обертач</strong> на 180! - Він повертає фігури + за годинниковою стрілкою на 180 градусів. (Сюрприз! :D) reward_wires_painter_and_levers: - title: >- - Дроти & Фарбувач(х4) - desc: >- - Ви щойно відкрили <strong>шар Дротів</strong>: Це окремий - шар поверх звичайного, він впроваджує нові механіки! - <br><br> Для початку вам доступний <strong>Фарбувач - (х4)</strong> - Підключіть входи з яких ви хочете пофарбувати - через шар дротів!<br><br> Щоб перейти на шар дротів, натисніть - <strong>E</strong>.<br><br>PS: <strong>Включіть підказки</strong> в - налаштуваннях щоб активувати навчання по дротам! - + title: Дроти & Фарбувач(х4) + desc: "Ви щойно відкрили <strong>шар Дротів</strong>: Це окремий шар поверх + звичайного, він впроваджує нові механіки! <br><br> Для початку вам + доступний <strong>Фарбувач (х4)</strong> - Підключіть входи з яких + ви хочете пофарбувати через шар дротів!<br><br> Щоб перейти на шар + дротів, натисніть <strong>E</strong>.<br><br>PS: <strong>Включіть + підказки</strong> в налаштуваннях щоб активувати навчання по + дротам!" reward_filter: - title: >- - Фільтр - desc: >- - Ви відкрили <strong>Фільтр</strong>! Він направлятиме елементи - в верхній чи правий виходи в залежності чи відповідають вони - сигналу отриманому з шару дроту.<br><br>Ви також можете передати - логічний сигнал (1 / 0) аби повністю активувати чи деактивувати його. - + title: Фільтр + desc: Ви відкрили <strong>Фільтр</strong>! Він направлятиме елементи в верхній + чи правий виходи в залежності чи відповідають вони сигналу + отриманому з шару дроту.<br><br>Ви також можете передати логічний + сигнал (1 / 0) аби повністю активувати чи деактивувати його. reward_display: title: Дисплей - desc: >- - Ви відкрили <strong>Дисплей</strong> - Підключіть сигнал на - шар дротів щоб візуалізувати його!<br><br>PS: Чи помітили ви що Зчитувач конвеєєра - та Сховище виводять останній прочитаний елемент? Спробуйте показати їх на - дисплеї! - + desc: "Ви відкрили <strong>Дисплей</strong> - Підключіть сигнал на шар дротів + щоб візуалізувати його!<br><br>PS: Чи помітили ви що Зчитувач + конвеєєра та Сховище виводять останній прочитаний елемент? Спробуйте + показати їх на дисплеї!" reward_constant_signal: title: Постійний Сигнал - desc: >- - Ви відкрили <strong>Постійний Сигнал</strong> на шарі дротів! - Пригодиться для приєднання до <strong>Фільтру елементів</strong> + desc: Ви відкрили <strong>Постійний Сигнал</strong> на шарі дротів! Пригодиться + для приєднання до <strong>Фільтру елементів</strong> наприклад.<br><br>Постійний сигнал може видавати - <strong>фігуру</strong>, <strong>колір</strong> або - <strong>логічний сигнал</strong> (1/0). - + <strong>фігуру</strong>, <strong>колір</strong> або <strong>логічний + сигнал</strong> (1/0). reward_logic_gates: title: Логічні вентилі desc: >- - Ви відкрили <strong>Логічні вентилі</strong>! Вам не обов'язково відчувати захоплення, + Ви відкрили <strong>Логічні вентилі</strong>! Вам не обов'язково + відчувати захоплення, але це й насправді круто!<br><br>З їх допомогою ви можете обчислювати операції "І", "АБО", "НЕ-АБО" і "НЕ".<br><br>Як бонус, я щойно дав вам <strong>Транзистор</strong>! - reward_virtual_processing: title: Віртуальна обробка - desc: >- - Я щойно дав цілу гору нових будівель, які дозволяють вам - <strong>імітувати обробку фігур</strong>!<br><br>Ви можете - тепер імітувати різак, обертач, укладач та решту на шарі дротів! - З цим у вас є три варіанти продовження гри:<br><br> - - Створіть <strong>автоматизовану машину</strong>, щоб створювати будь-яку можливу - фігуру за запитом Центру (рекомендую спробувати!).<br><br> - Побудуйте - щось круте з дротами.<br><br> - Продовжуйте грати як раніше. - <br><br> Що б ви не вибрали, не забувайте насолоджуватись грою! - - # Special reward, which is shown when there is no reward actually + desc: Я щойно дав цілу гору нових будівель, які дозволяють вам <strong>імітувати + обробку фігур</strong>!<br><br>Ви можете тепер імітувати різак, + обертач, укладач та решту на шарі дротів! З цим у вас є три варіанти + продовження гри:<br><br> - Створіть <strong>автоматизовану + машину</strong>, щоб створювати будь-яку можливу фігуру за запитом + Центру (рекомендую спробувати!).<br><br> - Побудуйте щось круте з + дротами.<br><br> - Продовжуйте грати як раніше. <br><br> Що б ви не + вибрали, не забувайте насолоджуватись грою! no_reward: title: Наступний рівень - desc: >- - Цей рівень не дає вам винагороди, але наступний дасть!<br><br>PS: Краще + desc: "Цей рівень не дає вам винагороди, але наступний дасть!<br><br>PS: Краще не руйнувати існуючу фабрику - Вам знадобляться <strong>всі</strong> - ці фігури пізніше, щоб <strong>розблокувати поліпшення</strong>! - + ці фігури пізніше, щоб <strong>розблокувати поліпшення</strong>!" no_reward_freeplay: title: Наступний рівень - desc: >- - Вітаємо! - + desc: Вітаємо! reward_freeplay: title: Вільна гра - desc: >- - Вам це вдалось! Ви відкрили режим <strong>Вільної гри</strong>! Це означає + desc: Вам це вдалось! Ви відкрили режим <strong>Вільної гри</strong>! Це означає що тепер фігури генеруються <strong>випадково</strong>!<br><br> - Оскільки Центр вимагатиме забезпечення <strong>пропускної здатності</strong>, відтепер - я настійно рекомендую будувати машину, яка автоматично - створюватиме запитувану форму!<br><br>Центр виводить задану - фігуру на шарі дротів, і все, що вам потрібно буде зробити, це проаналізувати її та - автоматично налаштувати свою фабрику. - + Оскільки Центр вимагатиме забезпечення <strong>пропускної + здатності</strong>, відтепер я настійно рекомендую будувати машину, + яка автоматично створюватиме запитувану форму!<br><br>Центр виводить + задану фігуру на шарі дротів, і все, що вам потрібно буде зробити, + це проаналізувати її та автоматично налаштувати свою фабрику. reward_demo_end: title: Кінець демо-версії - desc: >- - Ви досягнули кінець демо-версії! - + desc: Ви досягнули кінець демо-версії! settings: title: Налаштування categories: @@ -1001,20 +869,16 @@ settings: userInterface: Користувацький інтерфейс advanced: Розширені performance: Продуктивність - versionBadges: dev: Розробка staging: Тестування prod: Виробництво buildDate: Створено <at-date> - rangeSliderPercentage: <amount> % - labels: uiScale: title: Масштаб інтерфейсу - description: >- - Змінює розмір користувацього інтерфейсу. Інтерфейс усе ще буде + description: Змінює розмір користувацього інтерфейсу. Інтерфейс усе ще буде масштабуватися залежно від роздільної здатності вашого пристрою, але цей параметр контролює ступінь масштабування. scales: @@ -1023,13 +887,10 @@ settings: regular: Звичайний large: Великий huge: Величезний - autosaveInterval: title: Проміжок між автозбереженнями - description: >- - Контролює, як часто гра автоматично зберігатиметься. Ви також + description: Контролює, як часто гра автоматично зберігатиметься. Ви також можете повністю вимкнути його тут. - intervals: one_minute: 1 хвилина two_minutes: 2 хвилини @@ -1037,7 +898,6 @@ settings: ten_minutes: 10 хвилин twenty_minutes: 20 хвилин disabled: Вимкнено - scrollWheelSensitivity: title: Чутливість масштабування description: Змінює наскільки чутливе масштабування (колесо миші або трекпад). @@ -1047,10 +907,10 @@ settings: regular: Звичайна fast: Швидка super_fast: Надзвичайно швидка - movementSpeed: title: Швидкість руху - description: Змінює швидкість руху камери при використанні клавіатури, або тягнучи мишу до країв екрану. + description: Змінює швидкість руху камери при використанні клавіатури, або + тягнучи мишу до країв екрану. speeds: super_slow: Надзвичайно повільна slow: Повільна @@ -1058,168 +918,130 @@ settings: fast: Швидка super_fast: Надзвичайно швидка extremely_fast: Екстремально швидка - language: title: Мова description: Зміна мови. Усі переклади зроблені користувачами і можуть бути незавершеними! - enableColorBlindHelper: title: Режим високої контрастності description: Дозволяє використовувати різні інструменти, які дозволяють грати в гру, якщо ви є дальтоніком. - fullscreen: title: Повноекранний режим description: Щоб повністю насолодитися грою, рекомендується грати у повноекранному режимі. Доступно лише в повній версії. - soundsMuted: title: Заглушити звуки description: Якщо увімкнено, то приглушує всі звукові ефекти. - musicMuted: title: Заглушити музику description: Якщо увімкнено, то приглушує всю музику. - soundVolume: title: Гучність звуків description: Встановити гучність для звукових ефектів - musicVolume: title: Гучність музики description: Встановити гучність для музики - theme: title: Тема гри description: Оберіть тему гри (світлу чи темну). themes: dark: Темна light: Світла - refreshRate: title: Частота оновлення - description: >- - Визначає як багато ігрових циклів буде оброблено за секунду. - Загалом, висока частота циклів оновлення дає більшу точність розрахунків, але, також зменьшує продуктивність гри. - З низькою частотою пропускна здатність конвеєрних стрічок та машин може бути не точною. - + description: Визначає як багато ігрових циклів буде оброблено за секунду. + Загалом, висока частота циклів оновлення дає більшу точність + розрахунків, але, також зменьшує продуктивність гри. З низькою + частотою пропускна здатність конвеєрних стрічок та машин може + бути не точною. alwaysMultiplace: title: Мультирозміщення - description: >- - Якщо ввімкнено, всі будівлі залишатимуться вибраними після + description: Якщо ввімкнено, всі будівлі залишатимуться вибраними після розміщення, доки ви не скасуєте це. Це еквівалентно постійному утримуванню SHIFT. - offerHints: title: Підказки & посібники - description: >- - Якщо увімкнено, то пропонує підказки та посібники під час гри. + description: Якщо увімкнено, то пропонує підказки та посібники під час гри. Також приховує певні елементи інтерфейсу до заданого рівня, щоб полегшити потрапляння в гру. - enableTunnelSmartplace: title: Розумні тунелі - description: >- - Якщо увімкнено, то розміщення тунелів видалить непотрібні стрічки. - Це також дозволяє вам перетягувати тунелі, що видалятими автоматично - зайві тунелі. - + description: Якщо увімкнено, то розміщення тунелів видалить непотрібні стрічки. + Це також дозволяє вам перетягувати тунелі, що видалятими + автоматично зайві тунелі. vignette: title: Віньєтка - description: >- - Вмикає віньєтку, яка затемнює кути екрану і робить текст легшим для + description: Вмикає віньєтку, яка затемнює кути екрану і робить текст легшим для читання. - rotationByBuilding: title: Обертання за типом будівлі - description: >- - Кожний тип будівлі запам’ятовує обертання, яке ви встановили. + description: Кожний тип будівлі запам’ятовує обертання, яке ви встановили. Досить зручно, якщо ви часто перемикаєтесь між розміщенням різних типів будівель. - compactBuildingInfo: title: Компактна інформація про будівлі - description: >- - Скорочує інформаційні поля для будівель, лише показуючи їх + description: Скорочує інформаційні поля для будівель, лише показуючи їх співвідношення. В іншому випадку відображається ще й опис та зображення. - disableCutDeleteWarnings: title: Вимкнути попердження про вирізання та видалення - description: >- - Вимикає діалогові вікна попередження, що з’являються під час + description: Вимикає діалогові вікна попередження, що з’являються під час вирізання/видалення 100 та більше об’єктів. - lowQualityMapResources: title: Ресурси низької якості на карті - description: >- - Спрощує відображення ресурсів в режимі карти, щоб збільшити продуктивність. - Крім того, так навіть виглядає чуть чистіше, тож раджу спробувати! - + description: Спрощує відображення ресурсів в режимі карти, щоб збільшити + продуктивність. Крім того, так навіть виглядає чуть чистіше, тож + раджу спробувати! disableTileGrid: title: Вимкнути сітку - description: >- - Вимкнення сітки може допомогти з продуктивністю. - Також робить гру чуть чистіше! - + description: Вимкнення сітки може допомогти з продуктивністю. Також робить гру + чуть чистіше! clearCursorOnDeleteWhilePlacing: title: Очистити курсор кліком правої кнопки миші - description: >- - Увімкнено за замовчуванням, очищає курсор при кожному натисканні правої кнопки миші - поки у вас є будівля, обрана для розміщення. Якщо вимкнено, - ви можете видаляти будівлі, клацнувши правою кнопкою миші, в режимі розміщення - будівель. - + description: Увімкнено за замовчуванням, очищає курсор при кожному натисканні + правої кнопки миші поки у вас є будівля, обрана для розміщення. + Якщо вимкнено, ви можете видаляти будівлі, клацнувши правою + кнопкою миші, в режимі розміщення будівель. lowQualityTextures: title: Текстури низької якості (Потворне) - description: >- - Використовує текстури низької якості для збереження продуктивності. Але це зробить - гру дуже потворною! - + description: Використовує текстури низької якості для збереження продуктивності. + Але це зробить гру дуже потворною! displayChunkBorders: title: Відображати рамки блоків - description: >- - Гра розділена на блоки 16х16 плиток, якщо ця опція включена - межі блоків будуть відображатись. - + description: Гра розділена на блоки 16х16 плиток, якщо ця опція включена межі + блоків будуть відображатись. pickMinerOnPatch: title: Підбирати екстрактор на родовищі ресурсів - description: >- - Активоване за замовчуванням, обирає майнер, якщо ви використовуєте + description: Активоване за замовчуванням, обирає майнер, якщо ви використовуєте піпетку при наведенні на родовище ресурсів. - simplifiedBelts: title: Спрощує конвеєри (Потворне) - description: >- - Відображає предмети на конвеєрі лише коли наведено на них, аби зберегти продуктивність. - Я не рекомендую грати з цією опцією, якщо є така можливість. - + description: Відображає предмети на конвеєрі лише коли наведено на них, аби + зберегти продуктивність. Я не рекомендую грати з цією опцією, + якщо є така можливість. enableMousePan: title: Ввімкнути панорамування мишею - description: >- - Дозволяє передвигатись по карті курсором миші передвигаючи його до країв екрану. - Швидкість залежить від обраної в налаштуваннях Швидкості Руху. - + description: Дозволяє передвигатись по карті курсором миші передвигаючи його до + країв екрану. Швидкість залежить від обраної в налаштуваннях + Швидкості Руху. zoomToCursor: title: Приближати в напрямку курсора - description: >- - Якщо активовано, масштабування буде відбуватись в - напрямку курсору миші, в іншому випадку до ентру екрану. - + description: Якщо активовано, масштабування буде відбуватись в напрямку курсору + миші, в іншому випадку до ентру екрану. mapResourcesScale: title: Розмір ресурсів на карті - description: >- - Регулює розмір фігур в режимі карти (при віддаленні). - + description: Регулює розмір фігур в режимі карти (при віддаленні). + shapeTooltipAlwaysOn: + title: Shape Tooltip - Show Always + description: Whether to always show the shape tooltip when hovering buildings, + instead of having to hold 'ALT'. + tickrateHz: <amount> Hz keybindings: title: Гарячі клавіши - hint: >- - "Підказка: Упевніться, що ви використовуєте CTRL, SHIFT і ALT! Вони - дозволяють застосовувати різні варіанти розміщення." - + hint: '"Підказка: Упевніться, що ви використовуєте CTRL, SHIFT і ALT! Вони + дозволяють застосовувати різні варіанти розміщення."' resetKeybindings: Скинути гарячі клавіші - categoryLabels: general: Загальні ingame: Гра @@ -1228,7 +1050,6 @@ keybindings: massSelect: Масовий вибір buildings: Гарячі клавіши будівництва placementModifiers: Модифікатори розміщення - mappings: confirm: Підтвердити back: Назад @@ -1238,69 +1059,66 @@ keybindings: mapMoveLeft: Ліворуч mapMoveFaster: Пришвидшитися centerMap: Центрувати мапу - mapZoomIn: Приблизити mapZoomOut: Віддалити createMarker: Створити позначку - menuOpenShop: Поліпшення menuOpenStats: Статистика menuClose: Закрити меню - toggleHud: Перемкнути користувацький інтерфейс toggleFPSInfo: Перемкнути інформацію про FPS та налагоджувальну інформацію switchLayers: Перемкнути шари exportScreenshot: Експортувати цілу базу у вигляді зображення - - # --- Do not translate the values in this section - belt: *belt - balancer: *balancer - underground_belt: *underground_belt - miner: *miner - cutter: *cutter - rotater: *rotater - stacker: *stacker - mixer: *mixer - painter: *painter - trash: *trash - storage: *storage - wire: *wire - constant_signal: *constant_signal + belt: Конвеєрна стрічка + balancer: Балансир + underground_belt: Тунель + miner: Екстрактор + cutter: Різчик + rotater: Обертач + stacker: Укладальник + mixer: Змішувач кольорів + painter: Фарбувач + trash: Смітник + storage: Сховище + wire: Дріт + constant_signal: Постійний Сигнал logic_gate: Логічний вентиль - lever: *lever - filter: *filter - wire_tunnel: *wire_tunnel - display: *display - reader: *reader - virtual_processor: *virtual_processor - transistor: *transistor - analyzer: *analyzer - comparator: *comparator + lever: Вимикач + filter: Фільтр + wire_tunnel: Пересічення дроту + display: Дисплей + reader: Зчитувач конвеєєра + virtual_processor: Віртуальний Різчик + transistor: Транзистор + analyzer: Дослідник фігур + comparator: Компаратор item_producer: Матеріалізатор елементів (Пісочниця) - # --- - pipette: Піпетка rotateWhilePlacing: Повернути - rotateInverseModifier: >- - "Модифікатор: Повернути проти годинникової стрілки натомість" + rotateInverseModifier: '"Модифікатор: Повернути проти годинникової стрілки натомість"' cycleBuildingVariants: Повторювати варіанти циклічно confirmMassDelete: Видалити ділянку pasteLastBlueprint: Вставити останнє креслення cycleBuildings: Перемикання будівль lockBeltDirection: Увімкнути планувальник конвеєрних стрічок - switchDirectionLockSide: >- - "Планувальник: Змінити сторону" - copyWireValue: >- - "Дроти: Копіювати значення зпід курсору" + switchDirectionLockSide: '"Планувальник: Змінити сторону"' + copyWireValue: '"Дроти: Копіювати значення зпід курсору"' massSelectStart: Утримуйте і перетягуйте, щоб розпочати massSelectSelectMultiple: Виділити кілька ділянок massSelectCopy: Копіювати ділянку massSelectCut: Вирізати ділянку - placementDisableAutoOrientation: Вимкнути автоматичну орієнтацію placeMultiple: Залишатися у режимі розміщення placeInverse: Перевернути автоматичну орієнтацію стрічки - + rotateToUp: "Rotate: Point Up" + rotateToDown: "Rotate: Point Down" + rotateToRight: "Rotate: Point Right" + rotateToLeft: "Rotate: Point Left" + constant_producer: Constant Producer + goal_acceptor: Goal Acceptor + block: Block + massSelectClear: Clear belts + showShapeTooltip: Show shape output tooltip about: title: Про гру body: >- @@ -1315,10 +1133,8 @@ about: Звуковий трек був зроблений <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> — він просто приголомшливий.<br><br> І нарешті, величезна подяка моєму найкращому другу <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a>, бо без наших сеансів у факторіо ця гра ніколи б не існувала. - changelog: title: Журнал змін - demo: features: restoringGames: Відновлення збережень @@ -1326,16 +1142,16 @@ demo: oneGameLimit: Обмежено одним збереженням customizeKeybindings: Налаштування гарячих клавіш exportingBase: Експортування цілої бази у вигляді зображення - settingNotAvailable: Недоступно в демоверсії. - tips: - Центр приймає фігури різного виду, не лише ті що наразі вимагаються! - Переконайтесь що ваші фабрики модульні - це в майбутньому може знадобитись! - Не будуйте близько до Центру, інакше це може перерости в великий хаос! - - Якщо укладальник працює не так як очікувалось, спробуйте поміняти місцями входи. + - Якщо укладальник працює не так як очікувалось, спробуйте поміняти місцями + входи. - Ви можете переключити напрямок планувальника конвеєрів натискаючи <b>R</b>. - - Утримуючи <b>CTRL</b> ви можете перетягувати конвеєри не змінюючи їх орієнтації. + - Утримуючи <b>CTRL</b> ви можете перетягувати конвеєри не змінюючи їх + орієнтації. - Співвідношення залишаються однаковими поки поліпшення на одному рівні. - Послідовне виконання більш ефективне ніж паралельне. - Ви відкриєте більше варіантів будівель пізніше в грі. @@ -1343,46 +1159,147 @@ tips: - Симетрія - ключ! - Ви можете переплітати тунелі різніх рангів. - Намагайтесь будувати компактні фабрики - це відплатить вам в майбутньому! - - Фарбувальник має дзеркальний варіант, який ви можете обрати натиснувши <b>T</b> + - Фарбувальник має дзеркальний варіант, який ви можете обрати натиснувши + <b>T</b> - Дотримування правильних співвідношень збільшить ефективність. - На максимальному рівні 5 Екстракторів заповнять конвеєрну стрічку. - Не забувайте про тунелі! - Вам не обов'язково розділяти елементи рівномірно для повної ефективності. - - Утримуючи <b>SHIFT</b> активується планувальник конвеєрних стрічок, що дає вам змогу розміщувати конвеєри значно легче. + - Утримуючи <b>SHIFT</b> активується планувальник конвеєрних стрічок, що дає + вам змогу розміщувати конвеєри значно легче. - Різчик завжди ділить фігуру вертикально, не залежно від його орієнтації. - Для отримання білого кольору змішайте всі три основних кольори. - Сховище має пріоритетний вихід, що знаходиться зліва. - - Приділіть час для будування компактного та повторюваного дизайну - воно того варте! + - Приділіть час для будування компактного та повторюваного дизайну - воно + того варте! - Утримування <b>SHIFT</b> дозволяє ставити будівлю кілька раз. - Ви можете утримувати <b>ALT</b> для зміни напряму конвеєрних стрічок. - Ефективність - ключ! - Родовища що знаходяться дальше від Центру мають більш складні фігури. - - Машини мають обмежену швидкість, розподіляйте елементи між ними для збільшення ефективності. + - Машини мають обмежену швидкість, розподіляйте елементи між ними для + збільшення ефективності. - Використовуйте балансири для збільшення ефективності. - Організація важлива. Постарайтесь не пересікати конвеєри дуже часто. - Плануйте заздалегідь, аби уникнути неймовірного хаосу! - - Не поспішайте видаляти старі фабрики! Вони знадобляться вам для відкриття поліпшень. + - Не поспішайте видаляти старі фабрики! Вони знадобляться вам для відкриття + поліпшень. - Спробуйте подолати 20 рівень своїми силами, перед пошуком допомоги! - - Не ускладнюйте речі, намагайтесь тримати все якомога простим, і ви продвинетесь далеко. - - Ви можете повторно використовувати старі фабрики пізніше в грі. Плануйте фабрики універсальними. - - Інколи ви можете знайти необхідну фігуру на карті, без необхідності використання різчика та укладальника. + - Не ускладнюйте речі, намагайтесь тримати все якомога простим, і ви + продвинетесь далеко. + - Ви можете повторно використовувати старі фабрики пізніше в грі. Плануйте + фабрики універсальними. + - Інколи ви можете знайти необхідну фігуру на карті, без необхідності + використання різчика та укладальника. - Ціла фігура млин/вентилятор не появляється на карті. - Фарбуйте ваші фігури перед розрізанням, для більшої ефективності. - З модулями, простір - лише сприйняття; турбота для смертних. - Зробіть окрему фабрику для фігур креслення. Вони дуже важливі для модулів. - - Гляньте уважніше на Змішувач кольорів, і на ваші питання найдеться відповідь. + - Гляньте уважніше на Змішувач кольорів, і на ваші питання найдеться + відповідь. - Використовуйте <b>CTRL</b> + Тягнути мишою для виділення області. - Будування поруч з Центром може завадити подальшим проектам. - - Іконка "кнопки" поруч з фігурою в списку поліпшень закріплює фігуру на екрані. + - Іконка "кнопки" поруч з фігурою в списку поліпшень закріплює фігуру на + екрані. - Змішайте всі три основних кольори аби отримати білий колір! - У вас є безмежна карта, не кучкуйте фабрику, розширюйте! - Також спробуйте Factorio! Це моя улюблена гра. - - Різчик (4 вих.) розділяє по часовій стрілці починаючи з верхнього правого кута! + - Різчик (4 вих.) розділяє по часовій стрілці починаючи з верхнього правого + кута! - Ви можете завантажити свої збереження в основному меню гри! - - Ця гра має багато корисних гарячих клавіш! Вам варто глянути сторінку налаштувань. + - Ця гра має багато корисних гарячих клавіш! Вам варто глянути сторінку + налаштувань. - Ця гра має багато цікавих налаштувань, обов'язково перевірте їх! - - Позначка вашого Центру має невеликий компас, що завжди вказує напрямок до нього! + - Позначка вашого Центру має невеликий компас, що завжди вказує напрямок до + нього! - Аби очистити конвеєрні стрічки, виріжте область та вставте її в те ж місце. - - Натисніть F4 аби відобразити вашу частоту кадрів та частоту циклів оновлень. - - Натисніть F4 двічі аби відобразити координати плитки що під курсором та координати камери. - - Ви можете натиснути на фігуру, зкаріплену в лівому краю екрану, аби відкріпити її. + - Натисніть F4 аби відобразити вашу частоту кадрів та частоту циклів + оновлень. + - Натисніть F4 двічі аби відобразити координати плитки що під курсором та + координати камери. + - Ви можете натиснути на фігуру, зкаріплену в лівому краю екрану, аби + відкріпити її. +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/translations/base-zh-CN-ISBN.yaml b/translations/base-zh-CN-ISBN.yaml new file mode 100644 index 00000000..175cbd68 --- /dev/null +++ b/translations/base-zh-CN-ISBN.yaml @@ -0,0 +1,1083 @@ +steamPage: + shortText: “唯一能限制您的,只有您的想象力!” 《异形工厂》(Shapez.io) + 是一款在无限拓展的地图上,通过建造各类工厂设施,来自动化生产与组合出愈加复杂图形的游戏。 + discordLinkShort: 官方 Discord 服务器 + intro: |- + “奇形怪状,放飞想象!” + “自动生产,尽情创造!” + 《异形工厂》(Shapez.io)是一款能让您尽情发挥创造力,充分享受思维乐趣的IO游戏。 + 游戏很轻松,只需建造工厂,布好设施,无需操作即能自动创造出各种各样的几何图形。 + 挑战很烧脑,随着等级提升,需要创造的图形将会越来越复杂,同时您还需要在无限扩展的地图中持续扩建优化您的工厂。 + 以为这就是全部了吗? 不!图形的生产需求将会指数性增长,持续的扩大规模和熵增带来的无序,将会是令人头痛的问题! + 这还不是全部! 一开始我们创造了图形,然后我们需要学会提取和混合来让它们五颜六色。 + 然后,还有吗? 当然,唯有思维,方能无限。 + + 欢迎免费体验试玩版:“让您的想象力插上翅膀!” + 和最聪明的玩家一起挑战,请访问 Steam 游戏商城购买《异形工厂》(Shapez.io)的完整版, + what_others_say: 来看看玩家们对《异形工厂》(Shapez.io)的评价 + nothernlion_comment: 非常棒的有游戏,我的游戏过程充满乐趣,不觉时间飞逝。 + notch_comment: 哦,天哪!我真得该去睡了!但我想我刚刚搞定如何在游戏里面制造一台电脑出来。 + steam_review_comment: 这是一个不知不觉偷走你时间,但你并不会想要追回的游戏。非常烧脑的挑战,让我这样的完美主义者停不下来,总是希望可以再高效一些。 +global: + loading: 加载中 + error: 错误 + thousandsDivider: "," + decimalSeparator: . + suffix: + thousands: 千 + millions: 百万 + billions: 亿万 + trillions: 兆 + infinite: 无限 + time: + oneSecondAgo: 1秒前 + xSecondsAgo: <x>秒前 + oneMinuteAgo: 1分钟前 + xMinutesAgo: <x>分钟前 + oneHourAgo: 1小时前 + xHoursAgo: <x>小时前 + oneDayAgo: 1天前 + xDaysAgo: <x>天前 + secondsShort: <seconds>秒 + minutesAndSecondsShort: <minutes>分 <seconds>秒 + hoursAndMinutesShort: <hours>时 <minutes>分 + xMinutes: <x>分钟 + keys: + tab: TAB键 + control: CTRL键 + alt: ALT键 + escape: ESC键 + shift: SHIFT键 + space: 空格键 + loggingIn: 登录 +demoBanners: + title: 试玩版 + intro: 购买完整版以解锁所有游戏内容! +mainMenu: + play: 开始游戏 + changelog: 更新日志 + importSavegame: 读取存档 + openSourceHint: 本游戏已开源! + discordLink: 官方Discord服务器 + helpTranslate: 帮助我们翻译! + browserWarning: 很抱歉, 本游戏在当前浏览器上可能运行缓慢! 使用 谷歌浏览器 或者购买完整版以得到更好的体验。 + savegameLevel: 第<x>关 + savegameLevelUnknown: 未知关卡 + continue: 继续游戏 + newGame: 新游戏 + madeBy: 作者:<author-link> + subreddit: Reddit + savegameUnnamed: 存档未命名 + puzzleMode: 谜题模式 + back: 返回 + puzzleDlcText: 新增谜题模式将带给您更多的游戏乐趣! + puzzleDlcWishlist: 添加心愿单! + puzzleDlcViewNow: View Dlc +dialogs: + buttons: + ok: 确认 + delete: 删除 + cancel: 取消 + later: 以后 + restart: 重新开始 + reset: 重置 + getStandalone: 获取完整版 + deleteGame: 我没疯!我知道我在做什么! + viewUpdate: 查看更新 + showUpgrades: 显示设施升级 + showKeybindings: 显示按键设置 + retry: 重试 + continue: 继续 + playOffline: 离线游戏 + importSavegameError: + title: 读取错误 + text: 未能读取您的存档: + importSavegameSuccess: + title: 读取成功 + text: 存档被成功读取 + gameLoadFailure: + title: 存档损坏 + text: 未能读取您的存档: + confirmSavegameDelete: + title: 确认删除 + text: 您确定要删除这个游戏吗?<br><br> '<savegameName>' 等级 <savegameLevel><br><br> 该操作无法回退! + savegameDeletionError: + title: 删除失败 + text: 未能删除您的存档 + restartRequired: + title: 需要重启游戏 + text: 您需要重启游戏以应用变更的设置。 + editKeybinding: + title: 更改按键设定 + desc: 请按下您想要使用的按键以设定,或者按下 ESC 键来取消设定。 + resetKeybindingsConfirmation: + title: 重置按键设定 + desc: 您将要重置所有按键设定,请确认。 + keybindingsResetOk: + title: 重置按键设定 + desc: 成功重置所有按键设定! + featureRestriction: + title: 试玩版 + desc: 您尝试使用了<feature>一项功能。该功能在试玩版中不可用。请考虑购买完整版以获得更好的体验。 + oneSavegameLimit: + title: 存档数量限制 + desc: 试玩版中只能保存一份存档。请删除旧存档或者购买完整版! + updateSummary: + title: 新内容更新啦! + desc: "以下为游戏最新更新内容:" + upgradesIntroduction: + title: 解锁升级 + desc: <strong>您生产过的所有图形都能被用来解锁升级。</strong> 所以不要销毁您之前建造的工厂! 注意:升级菜单在屏幕右上角。 + massDeleteConfirm: + title: 确认删除 + desc: 您将要删除很多设施,准确来说有<count>种! 您确定要这么做吗? + blueprintsNotUnlocked: + title: 尚未解锁 + desc: 您还没有解锁蓝图功能!通过第12关的挑战后可解锁蓝图。 + keybindingsIntroduction: + title: 实用快捷键 + desc: "这个游戏有很多有用的快捷键设定。 以下是其中的一些介绍,记得在<strong>按键设置</strong>中查看其他按键设定!<br><br> + <code class='keybinding'>CTRL键</code> + 拖动:选择区域以复制或删除。<br> <code + class='keybinding'>SHIFT键</code>: 按住以放置多个同一种设施。<br> <code + class='keybinding'>ALT键</code>: 反向放置传送带。<br>" + createMarker: + title: 创建地图标记 + desc: 填写一个有意义的名称, 还可以同时包含一个形状的 <strong>短代码</strong> (您可以 <link>点击这里</link> + 生成短代码) + titleEdit: 编辑地图标记 + markerDemoLimit: + desc: 在试玩版中您只能创建两个地图标记。请获取完整版以创建更多标记。 + massCutConfirm: + title: 确认剪切 + desc: 您将要剪切很多设施,准确来说有<count>种! 您确定要这么做吗? + exportScreenshotWarning: + title: 工厂截图 + desc: 您将要导出您整个工厂基地的截图。如果您已经建设了一个规模很大的基地,生成截图的过程将会很慢,且有可能导致游戏崩溃! + massCutInsufficientConfirm: + title: 确认剪切 + desc: 您没有足够的图形来粘贴这个区域!您确定要剪切吗? + editSignal: + title: 设置信号 + descItems: "选择一个预定义的项目:" + descShortKey: ... 或者输入图形的 <strong>短代码</strong> (您可以 <link>点击这里</link> 生成短代码) + renameSavegame: + title: 重命名游戏存档 + desc: 您可以在此重命名游戏存档。 + tutorialVideoAvailable: + title: 教程 + desc: 这个关卡有视频攻略! 您想查看这个视频攻略? + tutorialVideoAvailableForeignLanguage: + title: 教程 + desc: 这个关卡有英语版本的视频攻略! 您想查看这个视频攻略吗?? + editConstantProducer: + title: 设置项目 + puzzleLoadFailed: + title: 谜题载入失败 + desc: 谜题未能载入: + submitPuzzle: + title: 提交谜题 + descName: 为您的谜题命名: + descIcon: 请输入唯一的短代码,它将作为您的谜题图标显示(您可以在<link>这里</link>生成,或者从以下随机推荐的图形中选择一个): + placeholderName: 谜题标题 + puzzleResizeBadBuildings: + title: 无法重新定义尺寸 + desc: 由于某些设施将会超出区域范围,因此您无法将区域变得更小。 + puzzleLoadError: + title: 谜题出错! + desc: 谜题未能载入: + offlineMode: + title: 离线模式 + desc: 无法访问服务器,所以游戏以离线模式进行。请确认您的互联网访问正常。 + puzzleDownloadError: + title: 下载出错! + desc: 无法下载谜题: + puzzleSubmitError: + title: 提交出错! + desc: 无法提交谜题: + puzzleSubmitOk: + title: 谜题成功发布! + desc: 恭喜!您的谜题已经成功发布,其他玩家已经可以玩到。您可以在“我的谜题”中找到自己已发布的谜题。 + puzzleCreateOffline: + title: 离线模式 + desc: 由于您处在离线模式,所以无法保存或发布您的谜题,您是否还要继续? + puzzlePlayRegularRecommendation: + title: 游戏建议 + desc: <strong>强烈</strong>建议您至少完成游戏本体第12关以后再尝试挑战《谜题挑战者》,否则您在游戏过程中可能遇到困难,是否仍要继续? + puzzleShare: + title: 短代码已复制 + desc: 谜题(<key>)的短代码已复制到剪贴板!您可以在谜题菜单中输入它以访问谜题。 + puzzleReport: + title: 上报谜题 + options: + profane: 污言秽语 + unsolvable: 无法完成 + trolling: 恶意设计 + puzzleReportComplete: + title: 感谢您的反馈! + desc: 此谜已被标记! + puzzleReportError: + title: 上报失败 + desc: 无法处理您的上报: + puzzleLoadShortKey: + title: 输入短代码 + desc: 输入谜题的短代码并载入。 + puzzleDelete: + title: 删除谜题吗? + desc: 您是否确认删除 '<title>'?删除谜题后将无法恢复! +ingame: + keybindingsOverlay: + moveMap: 移动地图 + selectBuildings: 选择区域 + stopPlacement: 停止放置 + rotateBuilding: 转动设施 + placeMultiple: 放置多个 + reverseOrientation: 反向放置 + disableAutoOrientation: 关闭自动定向 + toggleHud: 切换可视化界面 + placeBuilding: 放置设施 + createMarker: 创建地图标记 + delete: 销毁 + pasteLastBlueprint: 粘贴上一个蓝图 + lockBeltDirection: 启用传送带规划器 + plannerSwitchSide: 规划器换边 + cutSelection: 剪切 + copySelection: 复制 + clearSelection: 取消选择 + pipette: 吸取器 + switchLayers: 切换层 + clearBelts: 清除传送带 + buildingPlacement: + cycleBuildingVariants: 按 <key> 键以选择设施的变型体。 + hotkeyLabel: "快捷键: <key>" + infoTexts: + speed: 速率 + range: 范围 + storage: 容量 + oneItemPerSecond: 1个/秒 + itemsPerSecond: <x>个/秒 + itemsPerSecondDouble: (2倍) + tiles: <x>格 + levelCompleteNotification: + levelTitle: 第<level>关 + completed: 完成 + unlockText: 解锁<reward>! + buttonNextLevel: 下一关 + notifications: + newUpgrade: 有新内容更新啦! + gameSaved: 游戏已保存。 + freeplayLevelComplete: 第 <level>关 完成了! + shop: + title: 升级 + buttonUnlock: 升级 + tier: <x>级 + maximumLevel: 最高级(<currentMult>倍速率) + statistics: + title: 统计信息 + dataSources: + stored: + title: 已存储 + description: 所有图形已存储于中心。 + produced: + title: 生产 + description: 所有图形已在工厂内生产,包括中间产物。 + delivered: + title: 交付 + description: 图形已交付到中心基地。 + noShapesProduced: 您还没有生产任何图形。 + shapesDisplayUnits: + second: <shapes> / 秒 + minute: <shapes> / 分 + hour: <shapes> / 小时 + settingsMenu: + playtime: 游戏时间 + buildingsPlaced: 设施数量 + beltsPlaced: 传送带数量 + tutorialHints: + title: 需要帮助? + showHint: 显示帮助 + hideHint: 关闭 + blueprintPlacer: + cost: 成本 + waypoints: + waypoints: 地图标记 + hub: 中心 + description: 左键点击地图标记以跳转到该处,右键点击可删除地图标记。<br><br>按 <keybinding> + 在当前地点创建地图标记,或者在选定位置上<strong>右键</strong>创建地图标记。 + creationSuccessNotification: 成功创建地图标记。 + interactiveTutorial: + title: 新手教程 + hints: + 1_1_extractor: 在<strong>圆形</strong>上放置一个<strong>开采器</strong>来获取圆形!<br><br>提示:<strong>按下鼠标左键</strong>选中<strong>开采器</strong> + 1_2_conveyor: 用<strong>传送带</strong>将您的开采器连接到中心基地上!<br><br>提示:选中<strong>传送带</strong>后<strong>按下鼠标左键可拖动</strong>布置传送带! + 1_3_expand: 您可以放置更多的<strong>开采器</strong>和<strong>传送带</strong>来更有效率地完成关卡目标。<br><br> + 提示:按住 <strong>SHIFT</strong> + 键可放置多个<strong>开采器</strong>,注意用<strong>R</strong> + 键可旋转<strong>开采器</strong>的出口方向,确保开采的图形可以顺利传送。 + 2_1_place_cutter: 现在放置一个<strong>切割器</strong>,这个设施可把<strong>圆形</strong>切成两半!<br><br>注意:无论如何放置,切割机总是<strong>从上到下</strong>切割。 + 2_2_place_trash: 使用切割机后产生的废弃图形会导致<strong>堵塞</strong>。<br><br>注意使用<strong>垃圾桶</strong>清除当前 + (!) 不需要的废物。 + 2_3_more_cutters: 干的好!现在放置<strong>2个以上的切割机</strong>来加快当前缓慢的过程!<br><br>提示:用<strong>快捷键0-9</strong>可以快速选择各项设施! + 3_1_rectangles: 现在让我们开采一些矩形!找到<strong>矩形地带</strong>并<strong>放置4个开采器</strong>并将它们用<strong>传送带</strong>连接到中心基地。<br><br> + 提示:选中<strong>传送带</strong>后按住<strong>SHIFT键</strong>可快速准确地规划<strong>传送带路线!</strong> + 21_1_place_quad_painter: 放置<strong>四口上色器</strong>并且获取一些<strong>圆形</strong>,<strong>白色</strong>和<strong>红色</strong>! + 21_2_switch_to_wires: 按 <strong>E</strong> 键选择<strong>电线层</strong>!<br><br> + 然后用导线连接上色器的<strong>四个输入口</strong>! + 21_3_place_button: 很好!现在放置一个<strong>开关</strong>并连接导线! + 21_4_press_button: 按下<strong>开关</strong>来<strong>产生正信号</strong>以激活<strong>上色器</strong>。<br><br>注:您不用连上所有的输入口!试着只接两个。 + colors: + red: 红色 + green: 绿色 + blue: 蓝色 + yellow: 黄色 + purple: 紫色 + cyan: 青色 + white: 白色 + uncolored: 无色 + black: 黑色 + shapeViewer: + title: 层 + empty: 空 + copyKey: 复制短代码 + connectedMiners: + one_miner: 1 个开采器 + n_miners: <amount> 个开采器 + limited_items: 限制在 <max_throughput> + watermark: + title: 试玩版 + desc: 点击这里了解完整版内容 + get_on_steam: 在Steam商城购买 + standaloneAdvantages: + title: 购买完整版! + no_thanks: 不需要,谢谢 + points: + levels: + title: 12 个全新关卡! + desc: 总共 26 个不同关卡! + buildings: + title: 18 个全新设施! + desc: 呈现完全体的全自动工厂! + upgrades: + title: 20个等级升级 + desc: 试玩版只有5个等级! + markers: + title: 无限数量地图标记 + desc: 地图再大,不会迷路! + wires: + title: 电线更新包 + desc: 发挥创造力的全新维度! + darkmode: + title: 暗色模式 + desc: 优雅且护眼的配色! + support: + title: 支持作者 + desc: 我使用闲暇时间开发游戏! + achievements: + title: 成就 + desc: 挑战全成就解锁! + puzzleEditorSettings: + zoneTitle: 区域 + zoneWidth: 宽度 + zoneHeight: 高度 + trimZone: 整理 + clearItems: 清除项目 + clearBuildings: 清除设施 + resetPuzzle: 重设谜题 + share: 共享 + report: 上报 + puzzleEditorControls: + title: 谜题编辑器 + instructions: + - 1.放置<strong>常量生成器</strong>,为玩家提供此谜题的初始图形和颜色。 + - 2.建造您希望玩家建造的一个或多个图形,并将其交付给一个或多个<strong>目标接收器</strong>。 + - 3.当一个目标接收器接收到一个图形一段时间后,会<strong>将其保存为此玩家必须建造的目标</strong>(由<strong>绿色充能条</strong>表示)。 + - 4.单击设施上的<strong>锁定按钮</strong>即可将其禁用。 + - 5.单击审阅后,您的谜题将通过验证,您可以正式发布它。 + - 6.谜题发布后,<strong>所有设施都将被拆除</strong>,除了<strong>常量生成器</strong>和<strong>目标接收器</strong>。然后,等着其他玩家对您创造的谜题发起挑战吧! + puzzleCompletion: + title: 谜题挑战成功! + titleLike: 喜欢此谜题的话,请为它点赞: + titleRating: 您觉得此谜题难度如何? + titleRatingDesc: 您的评分将帮助作者在未来创作出更好的谜题! + continueBtn: 继续游戏 + menuBtn: 菜单 + nextPuzzle: 下一个谜题 + puzzleMetadata: + author: 作者 + shortKey: 短代码 + rating: 难度评分 + averageDuration: 平均挑战时间 + completionRate: 挑战完成率 +shopUpgrades: + belt: + name: 传送、分发、隧道 + description: 效率 <currentMult>倍 → <newMult>倍 + miner: + name: 开采 + description: 效率 <currentMult>倍 → <newMult>倍 + processors: + name: 切割、旋转、堆叠 + description: 效率 <currentMult>倍 → <newMult>倍 + painting: + name: 混色、上色 + description: 效率 <currentMult>倍 → <newMult>倍 +buildings: + belt: + default: + name: 传送带 + description: 运送物品,选中后<strong>按住鼠标并拖动</strong>可一次性放置多个传送带。 + miner: + default: + name: 开采器 + description: 放置在<strong>图形</strong>或者<strong>颜色</strong>上进行开采。 + chainable: + name: 开采器(链式) + description: 放置在<strong>图形</strong>或者<strong>颜色</strong>上进行开采。它们可以被链接在一起。 + underground_belt: + default: + name: 隧道 + description: 可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。 + tier2: + name: 二级隧道 + description: 可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。 + cutter: + default: + name: 切割机 + description: 始终将<strong>图形</strong>从上到下切开并分别输出。<strong>如果您只需要其中一半的图形,使用<strong>垃圾桶</strong>清除另一半图形,否则切割机会停止工作!</strong> + quad: + name: 切割机(四向) + description: 将输入的图形切成四块。<strong>如果您只需要其中一块图形,使用<strong>垃圾桶</strong>清除其他图形,否则切割机会停止工作!</strong> + rotater: + default: + name: 旋转机 + description: 将<strong>图形</strong>顺时针旋转90度。 + ccw: + name: 旋转机(逆时针) + description: 将<strong>图形</strong>逆时针旋转90度。 + rotate180: + name: 旋转机 (180度) + description: 将<strong>图形</strong>旋转180度。 + stacker: + default: + name: 堆叠机 + description: 将输入的<strong>图形</strong>在同一层内组合在一起。如果不能被直接组合,则右边输入<strong>图形</strong>会堆叠在左边输入<strong>图形</strong>上面。 + mixer: + default: + name: 混色器 + description: 用叠加混色法将两个<strong>颜色</strong>混合。 + painter: + default: + name: 上色器 + description: 将整个<strong>图形</strong>涂上输入的<strong>颜色</strong>。 + double: + name: 上色器(双面) + description: 使用顶部输入的<strong>颜色</strong>为左侧输入的<strong>图形</strong>上色。 + quad: + name: 上色器(四口) + description: 能够为<strong>图形</strong>的四个象限单独上色。记住只有通过电线层上带有<strong>正信号</strong>的插槽才可以上色! + mirrored: + name: 上色器 (镜像) + description: 将整个<strong>图形</strong>涂上输入的颜色。 + trash: + default: + name: 垃圾桶 + description: 可以从所有四个方向上输入物品并永远清除它们。 + hub: + deliver: 交付 + toUnlock: 解锁 + levelShortcut: 关卡 + endOfDemo: 试玩版结束 + wire: + default: + name: 电线 + description: 可用来传输<strong>信号<strong>,信号可以是物品,颜色或者开关值(0或1)。 + 不同颜色的<strong>电线</strong>不会互相连接 + second: + name: 电线 + description: 可用来传输<strong>信号<strong>,信号可以是物品,颜色或者开关值(0或1)。 + 不同颜色的<strong>电线</strong>不会互相连接 + balancer: + default: + name: 平衡器 + description: 多功能的设施:可将所有输入均匀地分配到所有输出上。 + merger: + name: 合并器 (小型) + description: 可将两条传送带合并为一条。 + merger-inverse: + name: 合并器 (小型) + description: 可将两条传送带合并为一条。 + splitter: + name: 分离器 (小型) + description: 可将一条传送带分成为两条。 + splitter-inverse: + name: 分离器 (小型) + description: 可将一条传送带分成为两条。 + storage: + default: + name: 存储器 + description: 储存多余的物品,直到储满。 优先处理左边的输出,并可以用作溢出门。 + wire_tunnel: + default: + name: 交叉电线 + description: 使两根<strong>电线</strong>交叉而不会连接起来。 + constant_signal: + default: + name: 恒定信号 + description: 发出固定信号,可以是<strong>图形</strong>、<strong>颜色</strong>、<strong>开关值(1 / + 0)</strong>。 + lever: + default: + name: 开关 + description: 可以在电线层上发出<strong>开关值(1 / 0)</strong>信号,以达到控制部件的作用,比如可以用来控制物品过滤器。 + logic_gate: + default: + name: 与门 + description: 如果输入<strong>都是</strong>正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) + not: + name: 非门 + description: 如果输入<strong>不是</strong>正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) + xor: + name: 异或门 + description: 如果输入<strong>只有一个</strong>正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) + or: + name: 或门 + description: 如果输入<strong>有一个</strong>是正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) + transistor: + default: + name: 晶体管 + description: 如果侧边输入正信号,输入可以通过并转发。(正信号:图形,颜色,开(1)信号) + mirrored: + name: 晶体管 + description: 如果侧边输入正信号,输入可以通过并转发。(正信号:图形,颜色,开(1)信号) + filter: + default: + name: 过滤器 + description: 在顶侧输出和<strong>信号</strong>匹配的内容,在右侧输出不匹配的内容。如果是开关量的话,开(1)信号从顶侧输出,关(0)信号从右侧输出。 + display: + default: + name: 显示器 + description: 在显示器上显示连接的<strong>信号</strong>(信号可以是:图形、颜色、开关值)。 + reader: + default: + name: 传送带读取器 + description: 可以读取<strong>传送带</strong>平均<strong>吞吐量</strong>。输出最后在<strong>电线层</strong>上读取的物品(一旦解锁。) + analyzer: + default: + name: 图形分析器 + description: 分析<strong>图形</strong>最底层的右上象限并返回其<strong>图形</strong>和<strong>颜色</strong>。 + comparator: + default: + name: 比较器 + description: 如果输入的两个<strong>信号</strong>一样将输出开(1)信号,可以比较图形,颜色,和开关值。 + virtual_processor: + default: + name: 虚拟切割机 + description: 模拟将<strong>图形</strong>切割成两半。 + rotater: + name: 模拟旋转机 + description: 模拟顺时针旋转<strong>图形</strong>。 + unstacker: + name: 模拟拆分器 + description: 模拟提取最上层<strong>图形</strong>从右侧输出,提取其余的<strong>图形</strong>从左侧输出。 + stacker: + name: 模拟堆叠机 + description: 模拟将右侧<strong>图形</strong>叠在左侧<strong>图形</strong>上。 + painter: + name: 模拟上色器 + description: 模拟使用右侧输入的<strong>颜色</strong>给底部输入的<strong>图形</strong>上色 + item_producer: + default: + name: 物品生成器 + description: 仅在沙盒模式下可用,在常规层上输出<strong>电线层</strong>给定的<strong>信号</strong>。 + constant_producer: + default: + name: 常量生成器 + description: 不断输出指定的图形或颜色。 + goal_acceptor: + default: + name: 目标接收器 + description: 将图形传递给目标接收器,并将它们设置为谜题挑战目标。 + block: + default: + name: 方块 + description: 放置了方块的格子将无法再进行其他放置。 +storyRewards: + reward_cutter_and_trash: + title: 切割图形 + desc: 恭喜!您解锁了<strong>切割机</strong>,不管如何放置,它只会从上到下切开<strong>图形</strong>! + <br>注意一定要处理掉切割后废弃的<strong>图形</strong>,不然它会<strong>阻塞</strong>传送带, + <br>使用<strong>垃圾桶</strong>,它会清除所有放进去的图形! + reward_rotater: + title: 旋转 + desc: 恭喜!您解锁了<strong>旋转机</strong>。它会顺时针将输入的<strong>图形旋转90度</strong>。 + reward_painter: + title: 上色 + desc: 恭喜!您解锁了<strong>上色器</strong>。开采一些颜色 (就像您开采图形一样),将其在上色器中与图形结合来将图形上色! + <br>注意:如果您不幸患有色盲,可以在设置中启用<strong>色盲模式</strong> + reward_mixer: + title: 混合颜色 + desc: 恭喜!您解锁了<strong>混色器</strong>。它使用<strong>叠加混色法</strong>将两种颜色混合起来。 + reward_stacker: + title: 堆叠 + desc: 恭喜!您解锁了<strong>堆叠机</strong>。它会将将输入的<strong>图形</strong>在同一层内组合在一起。 + <br>如果不能被直接组合,则右边输入<strong>图形</strong>会堆叠在左边输入<strong>图形</strong>上面。 + reward_splitter: + title: 分离器(小型) + desc: 您已经解锁了<strong>平衡器</strong>的变体<strong>分离器</strong>,它会把输入的东西一分为二! + reward_tunnel: + title: 隧道 + desc: 恭喜!您解锁了<strong>隧道</strong>。它可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。 + reward_rotater_ccw: + title: 逆时针旋转 + desc: 恭喜!您解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。它可以逆时针旋转<strong>图形</strong>。 + <br>选择<strong>旋转机</strong>然后按"T"键来选取这个变体。 + reward_miner_chainable: + title: 链式开采器 + desc: 您已经解锁了<strong>链式开采器</strong>!它能<strong>转发资源</strong>给其他的开采器,这样您就能更有效率的开采各类资源了!<br><br> + 注意:新的开采器已替换了工具栏里旧的开采器! + reward_underground_belt_tier_2: + title: 二级隧道 + desc: 恭喜!您解锁了<strong>二级隧道</strong>。这是隧道的一个变体。二级隧道有<strong>更长的传输距离</strong>。您还可以混用不同的隧道变体! + reward_cutter_quad: + title: 四向切割机 + desc: 恭喜!您解锁了<strong>切割机</strong>的<strong>四向</strong>变体。它可以将输入的<strong>图形</strong>切成四块而不只是左右两块! + reward_painter_double: + title: 双面上色器 + desc: 恭喜!您解锁了<strong>上色器</strong>的<strong>双面</strong>变体。它可以同时为两个图形上色,但每次只消耗一份颜色! + reward_storage: + title: 存储器 + desc: 您已经解锁了<strong>存储器</strong>,它能存满指定容量的物品! + <br>它<strong>优先从左边</strong>输出,这样您就可以用它做一个<strong>溢流门</strong>了! + reward_freeplay: + title: 自由模式 + desc: 成功了!您解锁了<strong>自由模式</strong>!挑战升级!这意味着现在将<strong>随机</strong>生成图形! + 从现在起,中心基地最为需要的是<strong>产量</strong>,我强烈建议您去制造一台能够自动交付所需图形的机器!<br><br> + 基地会在<strong>电线层</strong>输出需要的图形,您需要去分析图形并在此基础上自动配置您的工厂。 + reward_blueprints: + title: 蓝图 + desc: 您现在可以<strong>复制粘贴</strong>您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域,然后按C键复制。 + <br><br>粘贴并<strong>不是免费的</strong>,您需要制造<strong>蓝图图形</strong>来负担。蓝图图形是您刚刚交付的图形。 + no_reward: + title: 下一关 + desc: 这一关没有奖励,但是下一关有! <br><br> + 注意:最高明的规划师都不会破坏原有的工厂设施,您生产过的<strong>所有图形</strong>都会被用于<strong>解锁升级</strong>。 + no_reward_freeplay: + title: 下一关 + desc: 恭喜您!另外,我们已经计划在完整版中加入更多内容! + reward_balancer: + title: 平衡器 + desc: 恭喜!您解锁了多功能<strong>平衡器</strong>,它能够<strong>分割和合并</strong>多个传送带的资源,可以用来建造更大的工厂! + reward_merger: + title: 合并器(小型) + desc: 恭喜!您解锁了<strong>平衡器</strong>的变体<strong>合并器</strong>,它能合并两个输入到同一个传送带上! + reward_belt_reader: + title: 传送带读取器 + desc: 恭喜!您解锁了<strong>传送带读取器</strong>!它能够测量传送带上的生产率。 + <br><br>等您解锁了<strong>电线层</strong>后,它将会极其有用! + reward_rotater_180: + title: 旋转机(180度) + desc: 恭喜!您解锁了<strong>旋转器(180度)</strong>!它能帮您把一个图形旋转180度(惊喜! :D) + reward_display: + title: 显示器 + desc: 恭喜!您已经解锁了<strong>显示器</strong>,它可以显示一个在<strong>电线层上连接的信号</strong>! + <br>注意:您注意到<strong>传送读取器</strong>和<strong>存储器</strong>输出的他们最后读取的物品了吗?试着在显示屏上展示一下!" + reward_constant_signal: + title: 恒定信号 + desc: 恭喜!您解锁了生成于电线层之上的<strong>恒定信号</strong>,把它连接到<strong>过滤器</strong>时非常有用。 + <br>比如,它能发出图形、颜色、开关值(1 / 0)的固定信号。 + reward_logic_gates: + title: 逻辑门 + desc: 您解锁了<strong>逻辑门</strong>!它们是个好东西!<br> + 您可以用它们来进行'与,或,非,异或'操作。<br><br>作为奖励,我还给您解锁了<strong>晶体管</strong>! + reward_virtual_processing: + title: 模拟处理器 + desc: 我刚刚给了一大堆新设施,让您可以<strong>模拟形状的处理过程</strong>!<br> + 您现在可以在电线层上模拟切割机,旋转机,堆叠机和其他机器!<br> 有了这些,您可以选择下面三个方向来继续游戏:<br> + -建立一个<strong>自动化机器</strong>以生产出任何中心基地需要图形(建议一试!)。<br> + -用<strong>电线层</strong>做些酷炫的东西。<br> -继续正常游戏。<br> 放飞想象,尽情创造! + reward_wires_painter_and_levers: + title: 电线 & 四口上色器 + desc: 恭喜!您解锁了<strong>电线层</strong>:它是正常层之上的一个层,它将带来了许多新的机制!<br><br> + 首先我解锁了您的<strong>四口上色器</strong>,按<strong>E</strong>键切换到电线层,然后连接您想要染色的槽,用开关来控制开启。<br><br> + <strong>提示</strong>:可在设置中打开电线层教程!" + reward_filter: + title: 物品过滤器 + desc: 恭喜!您解锁了<strong>物品过滤器</strong>!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。<br><br> + 您也可以输入开关值(1 / 0)信号来激活或者禁用它。 + reward_demo_end: + title: 试玩结束 + desc: 恭喜!您已经通关了试玩版本! <br>更多挑战,请至Steam商城购买完整版!谢谢支持! +settings: + title: 设置 + categories: + general: 通用 + userInterface: 用户界面 + advanced: 高级 + performance: 性能 + versionBadges: + dev: 开发版本 + staging: 预览版本 + prod: 正式版本 + buildDate: 与<at-date>编译 + tickrateHz: <amount> 赫兹 + labels: + uiScale: + title: 用户界面大小 + description: 改变用户界面大小。用户界面会随着屏幕分辨率缩放,这个设置决定缩放比例。 + scales: + super_small: 最小 + small: 较小 + regular: 正常 + large: 较大 + huge: 最大 + scrollWheelSensitivity: + title: 缩放灵敏度 + description: 改变屏幕缩放灵敏度(用鼠标滚轮或者触控板控制缩放)。 + sensitivity: + super_slow: 最低 + slow: 较低 + regular: 正常 + fast: 较高 + super_fast: 最高 + language: + title: 语言 + description: 改变语言。官方中文版已更新,欢迎玩家继续提供更好的翻译意见。 + fullscreen: + title: 全屏 + description: 全屏可获得更好的游戏体验。仅在完整版中可用。 + soundsMuted: + title: 关闭音效 + description: 关闭所有音效。 + musicMuted: + title: 关闭音乐 + description: 关闭所有音乐。 + theme: + title: 界面主题 + description: 选择界面主题(深色或浅色)。 + themes: + dark: 深色 + light: 浅色 + refreshRate: + title: 模拟频率、刷新频率 + description: 如果您的显示器刷新频率是 + 144赫兹,请在这里更改刷新频率,这样游戏可以正确地根据您的屏幕进行模拟。但是如果您的电脑性能不佳,提高刷新频率可能降低帧数。 + alwaysMultiplace: + title: 多重放置 + description: 开启这个选项之后放下设施将不会取消设施选择。等同于一直按下 SHIFT 键。 + offerHints: + title: 提示与教程 + description: 是否显示提示、教程以及一些其他的帮助理解游戏的用户界面元素。建议新手玩家开启。 + movementSpeed: + title: 移动速度 + description: 改变摄像头的移动速度。 + speeds: + super_slow: 最慢 + slow: 较慢 + regular: 正常 + fast: 较快 + super_fast: 非常快 + extremely_fast: 最快 + enableTunnelSmartplace: + title: 智能隧道放置 + description: 启用后,放置隧道时会将多余的传送带移除。 此外,拖动隧道可以快速铺设隧道,以及移除不必要的隧道。 + vignette: + title: 晕映 + description: 启用晕映功能,可将屏幕角落里的颜色变深,更容易阅读文本。 + autosaveInterval: + title: 自动存档间隔 + description: 在这里控制您的游戏多长时间自动存档一次,你也可以完全关闭这个功能。建议打开。 + intervals: + one_minute: 1分钟 + two_minutes: 2分钟 + five_minutes: 5分钟 + ten_minutes: 10分钟 + twenty_minutes: 20分钟 + disabled: 关闭 + compactBuildingInfo: + title: 精简设施信息 + description: 缩小设施信息展示框。如果打开,放置设施时将不再显示说明和图片,只显示建造速度或其他数据。 + disableCutDeleteWarnings: + title: 关闭剪切/删除警告 + description: 如果打开,将不再在剪切或者删除100+实体时显示警告信息。 + enableColorBlindHelper: + title: 色盲模式 + description: 提供多种工具,帮助色盲玩家可正常进行游戏。 + rotationByBuilding: + title: 记忆设施方向 + description: 每一类设施都会记住各自上一次的旋转方向。如果您经常在不同设施类型之间切换,这个设置会让游戏操控更加便捷。 + soundVolume: + title: 音效音量 + description: 设置音效的音量 + musicVolume: + title: 音乐音量 + description: 设置音乐的音量 + lowQualityMapResources: + title: 低质量地图资源 + description: 放大时简化地图上资源的渲染以提高性能。开启甚至会让画面看起来更干净,低配置电脑玩家建议开启! + disableTileGrid: + title: 禁用网格 + description: 禁用平铺网格有助于提高性能。这也让游戏画面看起来更干净! + clearCursorOnDeleteWhilePlacing: + title: 右键取消 + description: 默认启用。在选择要放置的设施时,单击鼠标右键即可取消。如果禁用,则可以通过在放置设施时单击鼠标右键来删除设施。 + lowQualityTextures: + title: 低质量纹理 + description: 使用低质量纹理提高游戏性能。但是这样游戏会以低画面质量运行! + displayChunkBorders: + title: 显示大块的边框 + description: 游戏将每一个大块分成16*16的小块,如果启用将会显示每个大块的边框。 + pickMinerOnPatch: + title: 在资源块上选择开采器 + description: 默认开启,当在资源块上使用选取器时会选择开采器。 + simplifiedBelts: + title: 简单的传送带 + description: 除非鼠标放在传送带上,不然不会渲染传送带上的物品。启用可提升游戏性能。但除非特别需要性能,否则不推荐启用。 + enableMousePan: + title: 鼠标平移屏幕 + description: 在鼠标滑到屏幕边缘时可以移动地图。移动速度取决于移动速度设置。 + zoomToCursor: + title: 鼠标位置缩放 + description: 启用后在鼠标所在位置进行屏幕缩放,否则在屏幕中间进行缩放。 + mapResourcesScale: + title: 地图资源图形尺寸 + description: 控制地图总览时图形的尺寸(指缩小视野时)。 + shapeTooltipAlwaysOn: + title: 图形工具提示-始终显示 + description: 在设施上悬停时是否始终显示图形工具提示,而不是必须按住“Alt”键。 + rangeSliderPercentage: <amount> % +keybindings: + title: 按键设定 + hint: 提示:使用 CTRL、SHIFT、ALT!这些键在放置设施时有不同的效果。 + resetKeybindings: 重置按键设定 + categoryLabels: + general: 通用 + ingame: 游戏 + navigation: 视角 + placement: 放置 + massSelect: 批量选择 + buildings: 设施快捷键 + placementModifiers: 放置设施修饰键 + mappings: + confirm: 确认 + back: 返回 + mapMoveUp: 上 + mapMoveRight: 右 + mapMoveDown: 下 + mapMoveLeft: 左 + centerMap: 回到中心基地 + mapZoomIn: 放大 + mapZoomOut: 缩小 + createMarker: 创建地图标记 + menuOpenShop: 升级菜单 + menuOpenStats: 统计菜单 + toggleHud: 开关可视化界面 + toggleFPSInfo: 开关帧数与调试信息 + belt: 传送带 + underground_belt: 隧道 + miner: 开采器 + cutter: 切割机 + rotater: 旋转机 + stacker: 堆叠机 + mixer: 混色器 + painter: 上色器 + trash: 垃圾桶 + rotateWhilePlacing: 顺时针旋转 + rotateInverseModifier: "修饰键: 改为逆时针旋转" + cycleBuildingVariants: 切换所选择设施变体 + confirmMassDelete: 确认批量删除 + cycleBuildings: 切换所选择设施 + massSelectStart: 开始批量选择 + massSelectSelectMultiple: 选择多个区域 + massSelectCopy: 复制区域 + placementDisableAutoOrientation: 取消自动定向 + placeMultiple: 继续放置 + placeInverse: 反向自动传送带方向 + pasteLastBlueprint: 粘贴上一张蓝图 + massSelectCut: 剪切区域 + exportScreenshot: 导出截图 + mapMoveFaster: 快速移动 + lockBeltDirection: 启用传送带规划 + switchDirectionLockSide: 规划器:换边 + pipette: 吸取器 + menuClose: 关闭菜单 + switchLayers: 切换层 + wire: 电线 + balancer: 平衡器 + storage: 存储器 + constant_signal: 恒定信号 + logic_gate: 逻辑门 + lever: 控制杆 + filter: 过滤器 + wire_tunnel: 电线隧道 + display: 显示器 + reader: 传送带读取器 + virtual_processor: 模拟切割机 + transistor: 晶体管 + analyzer: 图形分析器 + comparator: 比较器 + item_producer: 物品生产器 (沙盒模式) + copyWireValue: 电线:复制指定电线上的值 + rotateToUp: 向上旋转 + rotateToDown: 向下旋转 + rotateToRight: 向右旋转 + rotateToLeft: 向左旋转 + constant_producer: 常量生成器 + goal_acceptor: 目标接收器 + block: 方块 + massSelectClear: 清除传送带 + showShapeTooltip: 显示图形输出提示 +about: + title: 关于游戏 + body: >- + 本游戏由 <a href="https://github.com/tobspr" target="_blank">Tobias + Springer</a>(我)开发,并且已经开源。<br><br> + + 如果您想参与开发,请查看 <a href="<githublink>" target="_blank">shapez.io on github</a>。<br><br> + + 这个游戏的开发获得了 Discord 社区内热情玩家的巨大支持。诚挚邀请您加入我们的 <a href="<discordlink>" target="_blank">Discord 服务器</a>!<br><br> + + 本游戏的音乐由 <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> 制作——他是个很棒的伙伴。<br><br> + + 最后,我想感谢我最好的朋友 <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> ——如果没有他的《异星工厂》(factorio)带给我的体验和启发,《异形工厂》(shapez.io)将不会存在。 +changelog: + title: 版本日志 +demo: + features: + restoringGames: 恢复存档 + importingGames: 导入存档 + oneGameLimit: 最多一个存档 + customizeKeybindings: 按键设定 + exportingBase: 导出工厂截图 + settingNotAvailable: 在试玩版中不可用。 +tips: + - 基地接受所有创造后输入的图形!并不限于现有的图形! + - 让你的工厂尽量模块化,不然后期你会面对大麻烦! + - 不要让设施太过靠近基地,不然可能会乱成一锅粥! + - 如果堆叠不起作用,尝试切换输入的图形来重新组合。 + - 您可以通过 <b>R</b> 键切换传送带规化方向。 + - 按住 <b>CTRL</b> 键拖动传送带将始终保持它现有的传送方向。 + - 只要所有设施等级一致,效率也将一致。 + - 串行执行比并行执行更有效。 + - 在后面的游戏中您会解锁更多设施的变种! + - 您可以使用<b>T</b>键切换不同的设施变种。 + - 对称是关键! + - 您可以使用隧道构建不同层次的通道。 + - 试着建造紧凑型工厂,它会给您带来好处的! + - 您可以按<b>T</b>来切换上色器的镜像变体。 + - 正确的设施比例将使效率最大化。 + - 在传送带和开采器等级一致时,5个开采器就可以占满一条传送带的运量。 + - 别忘了隧道! + - 您不必为了充分发挥效率而平均分配物品。 + - 按住<b>SHIFT</b>键将激活传送带路线规划,这样可以更有效地规划如何放置长距离的传送带。 + - 切割机总是垂直切割图形,而不管图形方向如何。 + - 还记得吗?混合三原色能够获得白色。 + - 存储缓冲区优先处理左侧的输出。 + - 您值得花时间来构建可重复的设计! + - 按住<b>CTRL</b>键能够放置多个设施。 + - 您可以按住<b>ALT</b>来反向放置传送带的方向。 + - 效率是关键! + - 离基地越远图形越复杂。 + - 机器的速度是有限的,把它们分开可以获得最高的效率。 + - 使用平衡器最大化您的效率。 + - 有条不紊!尽量不要过多地穿过传送带。 + - 凡事预则立!不预则废! + - 尽量不要删除旧的设施和生产线,您会需要他们生产的东西来升级设施并提高效率。 + - 先给自己定一个小目标:自己完成20级!!不去看别人的攻略! + - 不要把问题复杂化,试着保持简单,您会成功的。 + - 您可能需要在游戏的后期重复使用工厂。把您的工厂规划成可重复使用的。 + - 有时,您可以在地图上直接找到您需要的图形,并不需要使用堆叠机去合成它。 + - 风车图形不会自动产生 + - 在切割前,给您的图形上色可以获得最高的效率。 + - 模块化,可以使您提高效率。 + - 记得做一个单独的蓝图工厂。 + - 仔细看看调色器,您就会调色了。 + - <b>CTRL+点击</b>能够选择一块区域。 + - 设施建得离基地太近很可能会妨碍以后的工作。 + - 使用升级列表中每个形状旁边的固定图标将其固定到屏幕上。 + - 地图无限,放飞想象,尽情创造。 + - 向您推荐《异星工厂》!这是我最喜欢的游戏。向神作致敬! + - 四向切割机从右上开始进行顺时针切割! + - 在主界面您可以下载您的游戏存档文件! + - 这个游戏有很多有用的快捷键!一定要到快捷键页面看看。 + - 这个游戏有很多设置可以提高游戏效率,请一定要了解一下! + - 中心基地有个指向它所在方向的小指南指针! + - 想清理传送带,可剪切那块区域然后将其在相同位置粘贴。 + - 按F4显示FPS。 + - 按两次F4显示您鼠标和镜头所在的块。 + - 您可以点击被固定在屏幕左侧的图形来解除固定。 + - 您可以点击被固定在屏幕左侧的图形来解除固定。 +puzzleMenu: + play: 游戏 + edit: 编辑 + title: 谜题模式 + createPuzzle: 创建谜题 + loadPuzzle: 载入 + reviewPuzzle: 审阅 & 发布 + validatingPuzzle: 验证谜题 + submittingPuzzle: 提交谜题 + noPuzzles: 暂无满足此部分条件的谜题。 + dlcHint: 如已购买DLC,请在您的Steam库中右键点击异形工厂,然后选择属性-DLC。 + categories: + levels: 关卡 + new: 最新 + top-rated: 最受好评 + mine: 已创建 + easy: 简单 + medium: 普通 + hard: 困难 + completed: 已完成 + official: 官方教程 + trending: 本日趋势 + trending-weekly: 本周趋势 + categories: 分类 + difficulties: 根据难度 + account: 我的谜题 + search: 查找 + search: + action: 查找 + placeholder: 输入谜题或作者名称 + includeCompleted: 包括已完成 + difficulties: + any: 任何难度 + easy: 简单 + medium: 普通 + hard: 困难 + durations: + any: 任何挑战时间 + short: 快速 (< 2 分钟) + medium: 正常 + long: 较长 (> 10 分钟) + difficulties: + easy: 简单 + medium: 普通 + hard: 困难 + unknown: 未评分 + validation: + title: 无效谜题 + noProducers: 请放置一个常量生成器! + noGoalAcceptors: 请放置一个目标接收器! + goalAcceptorNoItem: 一或者多个目标接收器尚未分配目标图形,请传送一个图形以设定目标! + goalAcceptorRateNotMet: 一或者多个目标接收器尚未被传送足够数量的目标图形,请确认所有目标接收器的指示器都已显示绿色。 + buildingOutOfBounds: 一个或多个设施处于可建造区域范围外,扩大建造区域或者移除当前范围外的设施。 + autoComplete: 您的谜题已自动完成!请确认您的常量生成器没有直接向您的目标接收器进行传送。 +backendErrors: + ratelimit: 您的操作太频繁了。请稍等。 + invalid-api-key: 与后台通信失败,请尝试更新或重新启动游戏(无效的Api密钥)。 + unauthorized: 与后台通信失败,请尝试更新或重新启动游戏(未经授权)。 + bad-token: 与后台通信失败,请尝试更新或重新启动游戏(令牌错误)。 + bad-id: 谜题标识符无效。 + not-found: 找不到给定的谜题。 + bad-category: 找不到给定的类别。 + bad-short-key: 给定的短代码错误。 + profane-title: 您的谜题标题包含污言秽语。 + bad-title-too-many-spaces: 您的谜题标题过短。 + bad-shape-key-in-emitter: 常量生成器包含无效项目。 + bad-shape-key-in-goal: 目标接收器包含无效项目。 + no-emitters: 您的谜题没有任何常量生成器。 + no-goals: 您的谜题没有任何目标接收器。 + short-key-already-taken: 此短代码已被使用,请使用其他短代码。 + can-not-report-your-own-puzzle: 您无法上报您自己的谜题问题。 + bad-payload: 此请求包含无效数据。 + bad-building-placement: 您的谜题包含放置错误的设施。 + timeout: 请求超时。 + too-many-likes-already: 您的谜题已经得到了许多玩家的赞赏。如果您仍然希望删除它,请联系support@shapez.io! + no-permission: 您没有执行此操作的权限。 diff --git a/translations/base-zh-CN.yaml b/translations/base-zh-CN.yaml index 9be641ea..d3f7c190 100644 --- a/translations/base-zh-CN.yaml +++ b/translations/base-zh-CN.yaml @@ -1,52 +1,33 @@ steamPage: - shortText: shapez.io 是一款在无边际的地图上建造工厂、自动化生产与组合愈加复杂的图形的游戏。 + shortText: “唯一能限制您的,只有您的想象力!” 《异形工厂》(Shapez.io) + 是一款在无限拓展的地图上,通过建造各类工厂设施,来自动化生产与组合出愈加复杂图形的游戏。 discordLinkShort: 官方 Discord 服务器 intro: |- - Shapez.io 是一个休闲游戏,在其中,您将建造工厂以生产各种各样的几何图形。 - 随着等级提升,您需要生产的图形将会越来越复杂,您需要在无尽的地图中不断的扩建您的工厂。 - 如果这些还不够的话,您的生产目标是指数性增长的 - 您需要持续的增大工厂的规模! - 虽然您刚开始只需要生产图形,但您之后还可以给这些图形上色 - 您需要开采并混合颜料! - 您可以在 Steam 游戏商城购买此游戏的完整版, 但您可以先游玩试玩版并体验游戏! - title_advantages: 完整版内容 - advantages: - - <b>12 个全新关卡</b> 总共 26 个不同关卡 - - <b>18 个全新建筑</b> 用于建造全自动工厂! - - <b>20 个等级升级</b> 不停的愉快游玩! - - <b>导线更新包</b> 解锁更多可能 - - <b>暗色模式</b>! - - 无限数量存档 - - 无限数量地图标记 - - 支持作者! ❤️ - title_future: 预计更新 - planned: - - 建筑蓝图库 - - Steam 成就 - - 解密模式 - - 小地图 - - 模组 - - 沙盒模式 - - ... 以及更多! - title_open_source: 这个游戏是开源的! - title_links: 链接 - links: - discord: 官方 Discord 服务器 - roadmap: Roadmap - subreddit: Subreddit - source_code: 源代码 (GitHub) - translate: 帮助汉化(翻译)组! - text_open_source: |- - 任何人都可以对这个游戏做出贡献,我会活跃在游戏社区中并 尽最大可能积极参考大家对这个游戏的的全部建议和反馈。 - 请关注我的 trello board 以获取 the full roadmap! + “奇形怪状,放飞想象!” + “自动生产,尽情创造!” + 《异形工厂》(Shapez.io)是一款能让您尽情发挥创造力,充分享受思维乐趣的IO游戏。 + 游戏很轻松,只需建造工厂,布好设施,无需操作即能自动创造出各种各样的几何图形。 + 挑战很烧脑,随着等级提升,需要创造的图形将会越来越复杂,同时您还需要在无限扩展的地图中持续扩建优化您的工厂。 + 以为这就是全部了吗?不!图形的生产需求将会指数性增长,持续的扩大规模和熵增带来的无序,将会是令人头痛的问题! + 这还不是全部!一开始我们创造了图形,然后我们需要学会提取和混合来让它们五颜六色。 + 然后,还有吗?当然,唯有思维,方能无限。 + + 欢迎免费体验试玩版:“让您的想象力插上翅膀!” + 和最聪明的玩家一起挑战,请访问 Steam 游戏商城购买《异形工厂》(Shapez.io)的完整版, + what_others_say: 来看看玩家们对《异形工厂》(Shapez.io)的评价 + nothernlion_comment: 非常棒的有游戏,我的游戏过程充满乐趣,不觉时间飞逝。 + notch_comment: 哦,天哪!我真得该去睡了!但我想我刚刚搞定如何在游戏里面制造一台电脑出来。 + steam_review_comment: 这是一个不知不觉偷走你时间,但你并不会想要追回的游戏。非常烧脑的挑战,让我这样的完美主义者停不下来,总是希望可以再高效一些。 global: loading: 加载中 error: 错误 thousandsDivider: "," decimalSeparator: . suffix: - thousands: K - millions: M - billions: B - trillions: T + thousands: 千 + millions: 百万 + billions: 亿万 + trillions: 兆 infinite: 无限 time: oneSecondAgo: 1秒前 @@ -59,157 +40,216 @@ global: xDaysAgo: <x>天前 secondsShort: <seconds>秒 minutesAndSecondsShort: <minutes>分 <seconds>秒 - hoursAndMinutesShort: <hours>时 <minutes>秒 + hoursAndMinutesShort: <hours>时 <minutes>分 xMinutes: <x>分钟 keys: - tab: TAB - control: CTRL - alt: ALT - escape: ESC - shift: SHIFT - space: 空格 + tab: TAB键 + control: CTRL键 + alt: ALT键 + escape: ESC键 + shift: SHIFT键 + space: 空格键 + loggingIn: 登录 demoBanners: title: 试玩版 - intro: 获取独立版以解锁所有游戏内容! + intro: 购买完整版以解锁所有游戏内容! mainMenu: play: 开始游戏 changelog: 更新日志 - importSavegame: 导入 + importSavegame: 读取存档 openSourceHint: 本游戏已开源! discordLink: 官方Discord服务器 helpTranslate: 帮助我们翻译! - browserWarning: 很抱歉, 本游戏在当前浏览器上可能运行缓慢! 使用 Chrome 或者获取独立版以得到更好的体验。 + browserWarning: 很抱歉,本游戏在当前浏览器上可能运行缓慢!使用 Chrome 或者购买完整版以得到更好的体验。 savegameLevel: 第<x>关 savegameLevelUnknown: 未知关卡 continue: 继续游戏 newGame: 新游戏 madeBy: 作者:<author-link> subreddit: Reddit - savegameUnnamed: 未命名 + savegameUnnamed: 存档未命名 + puzzleMode: 谜题模式 + back: 返回 + puzzleDlcText: 持续优化,追求极致效率。在限定空间内使用有限的设施来创造图形!《异形工厂》(Shapez.io)的首个DLC“谜题挑战者”将会给大家带来更烧脑、更自由的全新挑战! + puzzleDlcWishlist: 添加愿望单! + puzzleDlcViewNow: 查看DLC dialogs: buttons: ok: 确认 delete: 删除 cancel: 取消 later: 以后 - restart: 重启游戏 + restart: 重新开始 reset: 重置 - getStandalone: 获取独立版 - deleteGame: 我知道我在做什么 + getStandalone: 获取完整版 + deleteGame: 我没疯!我知道我在做什么! viewUpdate: 查看更新 - showUpgrades: 显示建筑升级 + showUpgrades: 显示设施升级 showKeybindings: 显示按键设置 + retry: 重试 + continue: 继续 + playOffline: 离线游戏 importSavegameError: - title: 导入错误 - text: 未能导入你的存档: + title: 读取错误 + text: 未能读取您的存档: importSavegameSuccess: - title: 导入成功 - text: 存档被成功导入 + title: 读取成功 + text: 存档被成功读取 gameLoadFailure: title: 存档损坏 - text: 未能导入你的存档: + text: 未能读取您的存档: confirmSavegameDelete: title: 确认删除 - text: Are you sure you want to delete the following game?<br><br> - '<savegameName>' at level <savegameLevel><br><br> This can not be - undone! + text: 您确定要删除这个游戏吗?<br><br> '<savegameName>' 等级 <savegameLevel><br><br> 该操作无法回退! savegameDeletionError: - title: 删除错误 - text: 未能删除你的存档 + title: 删除失败 + text: 未能删除您的存档 restartRequired: title: 需要重启游戏 - text: 你需要重启游戏以应用变更的设置。 + text: 您需要重启游戏以应用变更的设置。 editKeybinding: - title: 更改按键设置 - desc: 请按下你想要使用的按键,或者按下 ESC 键来取消设置。 + title: 更改按键设定 + desc: 请按下您想要使用的按键以设定,或者按下 ESC 键来取消设定。 resetKeybindingsConfirmation: - title: 重置所有按键 - desc: 你将要重置所有按键,请确认。 + title: 重置按键设定 + desc: 您将要重置所有按键设定,请确认。 keybindingsResetOk: - title: 重置所有按键 - desc: 成功重置所有按键! + title: 重置按键设定 + desc: 成功重置所有按键设定! featureRestriction: title: 试玩版 - desc: 你尝试使用了<feature>功能。该功能在试玩版中不可用。请考虑购买独立版以获得更好的体验。 + desc: 您尝试使用了<feature>一项功能。该功能在试玩版中不可用。请考虑购买完整版以获得更好的体验。 oneSavegameLimit: title: 存档数量限制 - desc: 试玩版中只能保存一份存档。请删除旧存档或者获取独立版! + desc: 试玩版中只能保存一份存档。请删除旧存档或者购买完整版! updateSummary: - title: 更新啦! - desc: "以下为自上次游戏以来更新的内容:" + title: 新内容更新啦! + desc: 以下为游戏最新更新内容: upgradesIntroduction: - title: 解锁建筑升级 - desc: <strong>不要销毁你之前建造的工厂!</strong>你生产过的所有图形都会被用来升级建筑。 升级菜单在屏幕右上角。 + title: 解锁升级 + desc: <strong>您生产过的所有图形都能被用来解锁升级。</strong> 所以不要销毁您之前建造的工厂!注意:升级菜单在屏幕右上角。 massDeleteConfirm: title: 确认删除 - desc: 你将要删除很多建筑,准确来说有<count>幢! 你确定要这么做吗? + desc: 您将要删除很多设施,准确来说有<count>种!您确定要这么做吗? blueprintsNotUnlocked: - title: 未解锁 - desc: 你还没有解锁蓝图功能!完成更多的关卡来解锁蓝图。 + title: 尚未解锁 + desc: 您还没有解锁蓝图功能!通过第12关的挑战后可解锁蓝图。 keybindingsIntroduction: - title: 实用按键 - desc: "这个游戏有很多能帮助搭建工厂的使用按键。 以下是其中的一些,记得在<strong>按键设置</strong>中查看其他的!<br><br> - <code class='keybinding'>CTRL</code> + 拖动:选择区域以复制或删除。<br> <code - class='keybinding'>SHIFT</code>: 按住以放置多个。<br> <code - class='keybinding'>ALT</code>: 反向放置传送带。<br>" + title: 实用快捷键 + desc: 这个游戏有很多有用的快捷键设定。以下是其中的一些介绍,记得在<strong>按键设置</strong>中查看其他按键设定!<br><br> + <code class='keybinding'>CTRL键</code> + 拖动:选择区域以复制或删除。<br> <code + class='keybinding'>SHIFT键</code>: 按住以放置多个同一种设施。<br> <code + class='keybinding'>ALT键</code>:反向放置传送带。<br> createMarker: title: 创建地图标记 - desc: Give it a meaningful name, you can also include a <strong>short - key</strong> of a shape (Which you can generate <link>here</link>) + desc: 填写一个有意义的名称,还可以同时包含一个形状的 <strong>短代码</strong>(您可以 <link>点击这里</link> 生成短代码) titleEdit: 编辑地图标记 markerDemoLimit: - desc: 在试玩版中你只能创建两个地图标记。请获取独立版以创建更多标记。 + desc: 在试玩版中您只能创建两个地图标记。请获取完整版以创建更多标记。 massCutConfirm: title: 确认剪切 - desc: 你将要剪切很多建筑,准确来说有<count>幢! 你确定要这么做吗? + desc: 您将要剪切很多设施,准确来说有<count>种!您确定要这么做吗? exportScreenshotWarning: title: 工厂截图 - desc: 你将要导出你的工厂的截图。如果你的基地很大,截图过程将会很慢,且有可能导致游戏崩溃! + desc: 您将要导出您整个工厂基地的截图。如果您已经建设了一个规模很大的基地,生成截图的过程将会很慢,且有可能导致游戏崩溃! massCutInsufficientConfirm: title: 确认剪切 - desc: 你没有足够的图形来粘贴这个区域!你确定要剪切吗? + desc: 您没有足够的图形来粘贴这个区域!您确定要剪切吗? editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you - can generate <link>here</link>) + title: 设置信号 + descItems: "选择一个预定义的项目:" + descShortKey: ... 或者输入图形的 <strong>短代码</strong> (您可以 <link>点击这里</link> 生成短代码) renameSavegame: - title: 重命名存档 - desc: 您可以在此重命名存档。 + title: 重命名游戏存档 + desc: 您可以在此重命名游戏存档。 tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: 教程 + desc: 这个关卡有视频攻略!您想查看这个视频攻略? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: 教程 + desc: 这个关卡有英语版本的视频攻略!您想查看这个视频攻略吗? + editConstantProducer: + title: 设置项目 + puzzleLoadFailed: + title: 谜题载入失败 + desc: 很遗憾,谜题未能载入: + submitPuzzle: + title: 提交谜题 + descName: 给您的谜题设定名称: + descIcon: 请输入唯一的短代码,它将显示为标志您的谜题的图标( <link>在此</link>生成,或者从以下随机推荐的图形中选择一个): + placeholderName: 谜题标题 + puzzleResizeBadBuildings: + title: 无法调整大小 + desc: 您无法使这块区域变得更小,否则有些设施将会超出区域范围。 + puzzleLoadError: + title: 谜题出错 + desc: 谜题载入失败: + offlineMode: + title: 离线模式 + desc: 访问服务器失败,游戏只能在离线模式下进行。请确认您的网络连接正常。 + puzzleDownloadError: + title: 下载出错 + desc: 无法下载谜题: + puzzleSubmitError: + title: 提交出错 + desc: 无法提交您的谜题: + puzzleSubmitOk: + title: 谜题已发布 + desc: 恭喜!您所创造的谜题已成功发布,别的玩家已经可以对您的谜题发起挑战!您可以在“我的谜题”部分找到您发布的谜题。 + puzzleCreateOffline: + title: 离线模式 + desc: 由于您现在没有连接互联网,所以您将无法保存或发布您的谜题。是否仍要继续? + puzzlePlayRegularRecommendation: + title: 游戏建议 + desc: <strong>强烈</strong>建议您在至少完成本体第12关后再尝试体验“谜题挑战者”DLC,否则您可能在游戏过程中遇到困难,您是否仍要继续? + puzzleShare: + title: 短代码已复制 + desc: 此谜题的短代码(<key>)已经复制到了您的剪贴板!您可以在谜题菜单中输入短代码以快速访问对应谜题。 + puzzleReport: + title: 上报谜题 + options: + profane: 污言秽语 + unsolvable: 无法完成 + trolling: 恶意设计 + puzzleReportComplete: + title: 感谢您的反馈! + desc: 此谜题已标记! + puzzleReportError: + title: 上报失败 + desc: 无法处理您的上报: + puzzleLoadShortKey: + title: 输入短代码 + desc: 输入此谜题的短代码以载入。 + puzzleDelete: + title: 删除谜题? + desc: 您是否确认删除 '<title>'?删除后不可恢复! ingame: keybindingsOverlay: moveMap: 移动地图 selectBuildings: 选择区域 stopPlacement: 停止放置 - rotateBuilding: 转动建筑 + rotateBuilding: 转动设施 placeMultiple: 放置多个 reverseOrientation: 反向放置 disableAutoOrientation: 关闭自动定向 - toggleHud: 开关 HUD - placeBuilding: 放置建筑 + toggleHud: 切换可视化界面(HUD) + placeBuilding: 放置设施 createMarker: 创建地图标记 delete: 销毁 pasteLastBlueprint: 粘贴上一个蓝图 - lockBeltDirection: 启用传送带规划 + lockBeltDirection: 启用传送带规划器 plannerSwitchSide: 规划器换边 cutSelection: 剪切 copySelection: 复制 clearSelection: 取消选择 - pipette: 选取器 - switchLayers: Switch layers + pipette: 吸取器 + switchLayers: 切换层 + clearBelts: 清除传送带 buildingPlacement: - cycleBuildingVariants: 按 <key> 键以选择建筑变体. - hotkeyLabel: "快捷键: <key>" + cycleBuildingVariants: 按 <key> 键以选择设施的变型体。 + hotkeyLabel: 快捷键:<key> infoTexts: - speed: 效率 + speed: 速率 range: 范围 storage: 容量 oneItemPerSecond: 1个/秒 @@ -222,78 +262,67 @@ ingame: unlockText: 解锁<reward>! buttonNextLevel: 下一关 notifications: - newUpgrade: 有新更新啦! + newUpgrade: 有新内容更新啦! gameSaved: 游戏已保存。 - freeplayLevelComplete: Level <level> has been completed! + freeplayLevelComplete: 第 <level>关 完成了! shop: - title: 建筑升级 + title: 升级 buttonUnlock: 升级 tier: <x>级 - maximumLevel: 最高级(<currentMult>倍效率) + maximumLevel: 最高级(<currentMult>倍速率) statistics: title: 统计信息 dataSources: stored: - title: 已交付 - description: 显示基地中每种图形已交付且未使用的数量。 + title: 仓库 + description: 所有存储在中心基地的图形。 produced: title: 生产 - description: 显示所有正在被生产的图形数量,包括中间产物。 + description: 所有在工厂内生产的图形,包括中间产物。 delivered: - title: 送达 - description: 显示图形送达基地并交付的速度。 - noShapesProduced: 你还没有生产任何图形。 + title: 交付 + description: 交付到中心基地的图形。 + noShapesProduced: 您还没有生产任何图形。 shapesDisplayUnits: second: <shapes> / 秒 minute: <shapes> / 分 - hour: <shapes> / 时 + hour: <shapes> / 小时 settingsMenu: playtime: 游戏时间 - buildingsPlaced: 建筑数量 + buildingsPlaced: 设施数量 beltsPlaced: 传送带数量 tutorialHints: title: 需要帮助? showHint: 显示帮助 hideHint: 关闭 blueprintPlacer: - cost: 需要 + cost: 成本 waypoints: waypoints: 地图标记 - hub: 基地 - description: 左键跳转到地图标记,右键删除地图标记。<br><br>按 <keybinding> - 在当前地点创建地图标记,或者在选定位置上<strong>右键</strong>创建地图标记. + hub: 中心 + description: 左键点击地图标记以跳转到该处,右键点击可删除地图标记。<br><br>按 <keybinding> + 在当前地点创建地图标记,或者在选定位置上<strong>右键</strong>创建地图标记。 creationSuccessNotification: 成功创建地图标记。 interactiveTutorial: - title: 教程 + title: 新手教程 hints: - 1_1_extractor: 在<strong>圆形矿脉</strong>上放一个<strong>开采机</strong>来获取圆形! - 1_2_conveyor: 用<strong>传送带</strong>将你的开采机连接到基地上!<br><br>提示:用你的鼠标<strong>按下并拖动</strong>传送带! - 1_3_expand: 这<strong>不是</strong>一个挂机游戏!建造更多的开采机和传送带来更快地完成目标。<br><br> 提示:按住 - <strong>SHIFT</strong> 键来放置多个开采机,用 <strong>R</strong> 键旋转它们。 - 2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two - halves!<br><br> PS: The cutter always cuts from <strong>top to - bottom</strong> regardless of its orientation." - 2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a - <strong>trash</strong> to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed - up this slow process!<br><br> PS: Use the <strong>0-9 - hotkeys</strong> to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4 - extractors</strong> and connect them to the hub.<br><br> PS: - Hold <strong>SHIFT</strong> while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some - <strong>circles</strong>, <strong>white</strong> and - <strong>red</strong> color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - <strong>E</strong>!<br><br> Then <strong>connect all four - inputs</strong> of the painter with cables! - 21_3_place_button: Awesome! Now place a <strong>Switch</strong> and connect it - with wires! - 21_4_press_button: "Press the switch to make it <strong>emit a truthy - signal</strong> and thus activate the painter.<br><br> PS: You - don't have to connect all inputs! Try wiring only two." + 1_1_extractor: 在<strong>圆形</strong>上放置一个<strong>开采器</strong>来获取圆形!<br><br>提示:<strong>按下鼠标左键</strong>选中<strong>开采器</strong> + 1_2_conveyor: 用<strong>传送带</strong>将您的开采器连接到中心基地上!<br><br>提示:选中<strong>传送带</strong>后<strong>按下鼠标左键可拖动</strong>布置传送带! + 1_3_expand: 您可以放置更多的<strong>开采器</strong>和<strong>传送带</strong>来更有效率地完成关卡目标。<br><br> + 提示:按住 <strong>SHIFT</strong> + 键可放置多个<strong>开采器</strong>,注意用<strong>R</strong> + 键可旋转<strong>开采器</strong>的出口方向,确保开采的图形可以顺利传送。 + 2_1_place_cutter: 现在放置一个<strong>切割器</strong>,这个设施可把<strong>圆形</strong>切成两半!<br><br>注意:无论如何放置,切割机总是<strong>从上到下</strong>切割。 + 2_2_place_trash: 使用切割机后产生的废弃图形会导致<strong>堵塞</strong>。<br><br>注意使用<strong>垃圾桶</strong>清除当前 + (!) 不需要的废物。 + 2_3_more_cutters: 干的好!现在放置<strong>2个以上的切割机</strong>来加快当前缓慢的过程!<br><br>提示:用<strong>快捷键0-9</strong>可以快速选择各项设施! + 3_1_rectangles: 现在让我们开采一些矩形!找到<strong>矩形地带</strong>并<strong>放置4个开采器</strong>并将它们用<strong>传送带</strong>连接到中心基地。<br><br> + 提示:选中<strong>传送带</strong>后按住<strong>SHIFT键</strong>可快速准确地规划<strong>传送带路线!</strong> + 21_1_place_quad_painter: 放置<strong>四口上色器</strong>并且获取一些<strong>圆形</strong>,<strong>白色</strong>和<strong>红色</strong>! + 21_2_switch_to_wires: 按 <strong>E</strong> 键选择<strong>电线层</strong>!<br><br> + 然后用导线连接上色器的<strong>四个输入口</strong>! + 21_3_place_button: 很好!现在放置一个<strong>开关</strong>并连接导线! + 21_4_press_button: 按下<strong>开关</strong>来<strong>产生正信号</strong>以激活<strong>上色器</strong>。<br><br>注:您不用连上所有的输入口!试着只接两个。 colors: red: 红色 green: 绿色 @@ -309,44 +338,77 @@ ingame: empty: 空 copyKey: 复制短代码 connectedMiners: - one_miner: 1 个开采机 - n_miners: <amount> 个开采机 + one_miner: 1 个开采器 + n_miners: <amount> 个开采器 limited_items: 限制在 <max_throughput> watermark: title: 试玩版 - desc: 点击这里 了解完整版内容 - get_on_steam: 在 steam 商城购买 + desc: 点击这里了解完整版内容 + get_on_steam: 在Steam商城购买 standaloneAdvantages: title: 购买完整版! no_thanks: 不需要,谢谢 points: levels: - title: 12 个全新关卡! - desc: 总共 26 个不同关卡! + title: 12 个全新关卡! + desc: 总共 26 个不同关卡! buildings: - title: 18 个全新建筑 - desc: 用于建造全自动工厂! - savegames: - title: 无限数量存档 - desc: 存档功能可以尽情使用 + title: 18 个全新设施! + desc: 呈现完全体的全自动工厂! upgrades: - title: 20 个等级升级 - desc: 试玩版只有 5 个等级! + title: 20个等级升级 + desc: 试玩版只有5个等级! markers: title: 无限数量地图标记 - desc: 再也不会找不到自己的工厂了 + desc: 地图再大,不会迷路! wires: - title: 导线更新包 - desc: 解锁更多可能! + title: 电线更新包 + desc: 发挥创造力的全新维度! darkmode: title: 暗色模式 - desc: 优雅且护眼的配色 + desc: 优雅且护眼的配色! support: title: 支持作者 desc: 我使用闲暇时间开发游戏! + achievements: + title: 成就 + desc: 挑战全成就解锁! + puzzleEditorSettings: + zoneTitle: 区域 + zoneWidth: 宽度 + zoneHeight: 高度 + trimZone: 整理 + clearItems: 清除项目 + share: 共享 + report: 上报 + clearBuildings: 清除设施 + resetPuzzle: 重设谜题 + puzzleEditorControls: + title: 谜题编辑器 + instructions: + - 1.放置<strong>常量生成器</strong>,为玩家提供此谜题的初始图形和颜色。 + - 2.建造您希望玩家稍后建造的一个或多个图形,并将其交付给一个或多个<strong>目标接收器</strong>。 + - 3.当一个目标接收器接收到一个图形一段时间后,会<strong>将其保存为此玩家稍后必须建造的目标</strong>(由<strong>绿色充能条</strong>表示)。 + - 4.单击设施上的<strong>锁定按钮</strong>即可将其禁用。 + - 5.单击审阅后,您的谜题将通过验证,您可以正式发布它。 + - 6.谜题发布后,<strong>所有设施都将被拆除</strong>,除了<strong>常量生成器</strong>和<strong>目标接收器</strong>。然后,等着其他玩家对您创造的谜题发起挑战吧! + puzzleCompletion: + title: 谜题挑战成功! + titleLike: 喜欢此谜题的话,请为它点赞: + titleRating: 您觉得此谜题难度如何? + titleRatingDesc: 您的评分将帮助作者在未来创作出更好的谜题! + continueBtn: 继续游戏 + menuBtn: 菜单 + nextPuzzle: 下一个谜题 + puzzleMetadata: + author: 作者 + shortKey: 短代码 + rating: 难度评分 + averageDuration: 平均挑战时间 + completionRate: 挑战完成率 shopUpgrades: belt: - name: 传送带、平衡机、隧道 + name: 传送、分发、隧道 description: 效率 <currentMult>倍 → <newMult>倍 miner: name: 开采 @@ -361,342 +423,304 @@ buildings: belt: default: name: 传送带 - description: 运送物品,按住并拖动来放置多个传送带。 + description: 运送物品,选中后<strong>按住鼠标并拖动</strong>可一次性放置多个传送带。 miner: default: - name: 开采机 - description: 在图形或者颜色上放置来开采他们。 + name: 开采器 + description: 放置在<strong>图形</strong>或者<strong>颜色</strong>上进行开采。 chainable: - name: 链式开采机 - description: 在图形或者颜色上放置来开采他们。可以被链接在一起。 + name: 开采器(链式) + description: 放置在<strong>图形</strong>或者<strong>颜色</strong>上进行开采。它们可以被链接在一起。 underground_belt: default: name: 隧道 - description: 可以从其他传送带或建筑底下方运送物品。 + description: 可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。 tier2: name: 二级隧道 - description: 可以从其他传送带或建筑底下方运送物品。 + description: 可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。 cutter: default: name: 切割机 - description: 将图形从上到下切开并输出。<strong>如果你只需要其中一半,记得把另一半销毁掉,否则切割机会停止工作!</strong> + description: 始终将<strong>图形</strong>从上到下切开并分别输出。<strong>如果您只需要其中一半的图形,使用<strong>垃圾桶</strong>清除另一半图形,否则切割机会停止工作!</strong> quad: name: 切割机(四向) - description: 将输入的图形切成四块。<strong>如果你只需要其中一块,记得把其他的销毁掉,否则切割机会停止工作!</strong> + description: 将输入的图形切成四块。<strong>如果您只需要其中一块图形,使用<strong>垃圾桶</strong>清除其他图形,否则切割机会停止工作!</strong> rotater: default: name: 旋转机 - description: 将图形顺时针旋转90度。 + description: 将<strong>图形</strong>顺时针旋转90度。 ccw: name: 旋转机(逆时针) - description: 将图形逆时针旋转90度。 + description: 将<strong>图形</strong>逆时针旋转90度。 rotate180: - name: 旋转机 (180度) - description: 将图形旋转180度。 + name: 旋转机(180度) + description: 将<strong>图形</strong>旋转180度。 stacker: default: name: 堆叠机 - description: 将输入的图形拼贴在一起。如果不能被直接拼贴,右边的图形会被堆叠在左边的图形上面. + description: 将输入的<strong>图形</strong>在同一层内组合在一起。如果不能被直接组合,则右边输入<strong>图形</strong>会堆叠在左边输入<strong>图形</strong>上面。 mixer: default: - name: 混色机 - description: 用加法混色将两个颜色混合起来 + name: 混色器 + description: 用叠加混色法将两个<strong>颜色</strong>混合。 painter: default: - name: 上色机 - description: 将整个图形涂上输入的颜色。 + name: 上色器 + description: 将整个<strong>图形</strong>涂上输入的<strong>颜色</strong>。 double: - name: 上色机(双倍) - description: 同时为两个输入的图形上色,每次上色只消耗一份颜色。 + name: 上色器(双面) + description: 使用顶部输入的<strong>颜色</strong>为左侧输入的<strong>图形</strong>上色。 quad: - name: 上色机(四向) - description: Allows you to color each quadrant of the shape individually. Only - slots with a <strong>truthy signal</strong> on the wires layer - will be painted! + name: 上色器(四口) + description: 能够为<strong>图形</strong>的四个象限单独上色。记住只有通过电线层上带有<strong>正信号</strong>的插槽才可以上色! mirrored: - name: 上色机 (镜像) - description: 将整个图形涂上输入的颜色。 + name: 上色器(镜像) + description: 将整个<strong>图形</strong>涂上输入的颜色。 trash: default: name: 垃圾桶 - description: 从所有四个方向上输入物品并销毁它们。永远。 + description: 可以从所有四个方向上输入物品并永远清除它们。 hub: deliver: 交付 - toUnlock: 来解锁 - levelShortcut: LVL + toUnlock: 解锁 + levelShortcut: 关卡 endOfDemo: 试玩版结束 wire: default: - name: 能量导线 - description: 用于传输能量。 + name: 电线 + description: 可用来传输<strong>信号<strong>,信号可以是物品,颜色或者开关值(0或1)。 + 不同颜色的<strong>电线</strong>不会互相连接 second: - name: 导线 - description: 传输信号,信号可以是物品,颜色或者布尔值。 不同颜色的导线不会互相连接。 + name: 电线 + description: 可用来传输<strong>信号<strong>,信号可以是物品,颜色或者开关值(0或1)。 + 不同颜色的<strong>电线</strong>不会互相连接 balancer: default: - name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + name: 平衡器 + description: 多功能的设施:可将所有输入均匀地分配到所有输出上。 merger: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: 合并器(小型) + description: 可将两条传送带合并为一条。 merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: 合并器(小型) + description: 可将两条传送带合并为一条。 splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: 分离器(小型) + description: 可将一条传送带分成为两条。 splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: 分离器(小型) + description: 可将一条传送带分成为两条。 storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: 存储器 + description: 储存多余的物品,直到储满。优先处理左边的输出,并可以用作溢出门。 wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: 交叉电线 + description: 使两根<strong>电线</strong>交叉而不会连接起来。 constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: 恒定信号 + description: 发出固定信号,可以是<strong>图形</strong>、<strong>颜色</strong>、<strong>开关值(1 / + 0)</strong>。 lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: 开关 + description: 可以在电线层上发出<strong>开关值(1 / 0)</strong>信号,以达到控制部件的作用,比如可以用来控制物品过滤器。 logic_gate: default: - name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + name: 与门 + description: 如果输入<strong>都是</strong>正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) not: - name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + name: 非门 + description: 如果输入<strong>不是</strong>正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) xor: - name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + name: 异或门 + description: 如果输入<strong>只有一个</strong>正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) or: - name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + name: 或门 + description: 如果输入<strong>有一个</strong>是正信号,则发出<strong>开(1)</strong>信号。(正信号:图形,颜色,开(1)信号) transistor: default: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: 晶体管 + description: 如果侧边输入正信号,输入可以通过并转发。(正信号:图形,颜色,开(1)信号) mirrored: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: 晶体管 + description: 如果侧边输入正信号,输入可以通过并转发。(正信号:图形,颜色,开(1)信号) filter: default: - name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + name: 过滤器 + description: 在顶侧输出和<strong>信号</strong>匹配的内容,在右侧输出不匹配的内容。如果是开关量的话,开(1)信号从顶侧输出,关(0)信号从右侧输出。 display: default: - name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + name: 显示器 + description: 在显示器上显示连接的<strong>信号</strong>(信号可以是:图形、颜色、开关值)。 reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: 传送带读取器 + description: 可以读取<strong>传送带</strong>平均<strong>吞吐量</strong>。输出最后在<strong>电线层</strong>上读取的物品(一旦解锁。) analyzer: default: - name: Shape Analyzer - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + name: 图形分析器 + description: 分析<strong>图形</strong>最底层的右上象限并返回其<strong>图形</strong>和<strong>颜色</strong>。 comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: 比较器 + description: 如果输入的两个<strong>信号</strong>一样将输出开(1)信号,可以比较图形,颜色,和开关值。 virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: 虚拟切割机 + description: 模拟将<strong>图形</strong>切割成两半。 rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: 模拟旋转机 + description: 模拟顺时针旋转<strong>图形</strong>。 unstacker: - name: Virtual Unstacker - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + name: 模拟拆分器 + description: 模拟提取最上层<strong>图形</strong>从右侧输出,提取其余的<strong>图形</strong>从左侧输出。 stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: 模拟堆叠机 + description: 模拟将右侧<strong>图形</strong>叠在左侧<strong>图形</strong>上。 painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: 模拟上色器 + description: 模拟使用右侧输入的<strong>颜色</strong>给底部输入的<strong>图形</strong>上色 item_producer: default: - name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + name: 物品生成器 + description: 仅在沙盒模式下可用,在常规层上输出<strong>电线层</strong>给定的<strong>信号</strong>。 + constant_producer: + default: + name: 常量生成器 + description: 不断输出指定的图形或颜色。 + goal_acceptor: + default: + name: 目标接收器 + description: 将图状传递给目标接收器,以将它们设置为谜题挑战目标。 + block: + default: + name: 方块 + description: 放置了方块的格子将无法再进行其他放置。 storyRewards: reward_cutter_and_trash: title: 切割图形 - desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half - from top to bottom <strong>regardless of its - orientation</strong>!<br><br>Be sure to get rid of the waste, or - otherwise <strong>it will clog and stall</strong> - For this purpose - I have given you the <strong>trash</strong>, which destroys - everything you put into it! + desc: 恭喜!您解锁了<strong>切割机</strong>,不管如何放置,它只会从上到下切开<strong>图形</strong>! + <br>注意一定要用处理掉切割后废弃的<strong>图形</strong>,不然它会<strong>阻塞</strong>传送带, + <br>使用<strong>垃圾桶</strong>,它会清除所有放进去的图形! reward_rotater: - title: 顺时针旋转 - desc: 恭喜!你解锁了<strong>旋转机</strong>。它会顺时针旋转输入的图形90度。 + title: 旋转 + desc: 恭喜!您解锁了<strong>旋转机</strong>。它会顺时针将输入的<strong>图形旋转90度</strong>。 reward_painter: title: 上色 - desc: 恭喜!你解锁了<strong>上色机</strong>。开采一些颜色 (就像你开采图形一样) - 将其在上色机中与图形结合来将图形上色!<br><br>PS:如果你患有色盲,可以在设置中启用<strong>色盲模式</strong>! + desc: 恭喜!您解锁了<strong>上色器</strong>。开采一些颜色(就像您开采图形一样),将其在上色器中与图形结合来将图形上色! + <br>注意:如果您不幸患有色盲,可以在设置中启用<strong>色盲模式</strong> reward_mixer: title: 混合颜色 - desc: 恭喜!你解锁了<strong>混色机</strong>。这个建筑使用<strong>加法混色</strong>将两种颜色混合起来。 + desc: 恭喜!您解锁了<strong>混色器</strong>。它使用<strong>叠加混色法</strong>将两种颜色混合起来。 reward_stacker: title: 堆叠 - desc: 恭喜!你解锁了<strong>堆叠机</strong>。堆叠机会尝试把两个输入的图形<strong>拼贴</strong>在一起。如果有重叠的部分,右边的输入会被<strong>堆叠</strong>在左边的输入上方! + desc: 恭喜!您解锁了<strong>堆叠机</strong>。它会将将输入的<strong>图形</strong>在同一层内组合在一起。 + <br>如果不能被直接组合,则右边输入<strong>图形</strong>会堆叠在左边输入<strong>图形</strong>上面。 reward_splitter: - title: 分离与合并 - desc: You have unlocked a <strong>splitter</strong> variant of the - <strong>balancer</strong> - It accepts one input and splits them - into two! + title: 分离器(小型) + desc: 您已经解锁了<strong>平衡器</strong>的变体<strong>分离器</strong>,它会把输入的东西一分为二! reward_tunnel: title: 隧道 - desc: 恭喜!你解锁了<strong>隧道</strong>。你现在可以从其他传送带或建筑底下运送物品了! + desc: 恭喜!您解锁了<strong>隧道</strong>。它可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。 reward_rotater_ccw: title: 逆时针旋转 - desc: 恭喜!你解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。这个变体可以逆时针旋转图形。选择旋转机然后按"T"键来选取这个变体。 + desc: 恭喜!您解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。它可以逆时针旋转<strong>图形</strong>。 + <br>选择<strong>旋转机</strong>然后按"T"键来选取这个变体。 reward_miner_chainable: - title: 链式开采机 - desc: "You have unlocked the <strong>chained extractor</strong>! It can - <strong>forward its resources</strong> to other extractors so you - can more efficiently extract resources!<br><br> PS: The old - extractor has been replaced in your toolbar now!" + title: 链式开采器 + desc: 您已经解锁了<strong>链式开采器</strong>!它能<strong>转发资源</strong>给其他的开采器,这样您就能更有效率的开采各类资源了!<br><br> + 注意:新的开采器已替换了工具栏里旧的开采器! reward_underground_belt_tier_2: title: 二级隧道 - desc: 恭喜!你解锁了<strong>二级隧道</strong>。这是隧道的一个变体。二级隧道有<strong>更长的传输距离</strong>。你还可以混用不同的隧道变体! + desc: 恭喜!您解锁了<strong>二级隧道</strong>。这是隧道的一个变体。二级隧道有<strong>更长的传输距离</strong>。您还可以混用不同的隧道变体! reward_cutter_quad: title: 四向切割机 - desc: 恭喜!你解锁了<strong>切割机</strong>的<strong>四向</strong>变体。它可以将输入的图形切成四块而不只是左右两块! + desc: 恭喜!您解锁了<strong>切割机</strong>的<strong>四向</strong>变体。它可以将输入的<strong>图形</strong>切成四块而不只是左右两块! reward_painter_double: - title: 双倍上色机 - desc: 恭喜!你解锁了<strong>上色机</strong>的<strong>双倍</strong>变体。它可以同时为两个图形上色,每次只消耗一份颜色! + title: 双面上色器 + desc: 恭喜!您解锁了<strong>上色器</strong>的<strong>双面</strong>变体。它可以同时为两个图形上色,但每次只消耗一份颜色! reward_storage: - title: 仓库 - desc: You have unlocked the <strong>storage</strong> building - It allows you to - store items up to a given capacity!<br><br> It priorities the left - output, so you can also use it as an <strong>overflow gate</strong>! + title: 存储器 + desc: 您已经解锁了<strong>存储器</strong>,它能存满指定容量的物品! + <br>它<strong>优先从左边</strong>输出,这样您就可以用它做一个<strong>溢流门</strong>了! reward_freeplay: title: 自由模式 - desc: You did it! You unlocked the <strong>free-play mode</strong>! This means - that shapes are now <strong>randomly</strong> generated!<br><br> - Since the hub will require a <strong>throughput</strong> from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!<br><br> The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + desc: 成功了!您解锁了<strong>自由模式</strong>!挑战升级!这意味着现在将<strong>随机</strong>生成图形! + 从现在起,中心基地最为需要的是<strong>产量</strong>,我强烈建议您去制造一台能够自动交付所需图形的机器!<br><br> + 基地会在<strong>电线层</strong>输出需要的图形,您需要去分析图形并在此基础上自动配置您的工厂。 reward_blueprints: title: 蓝图 - desc: 你现在可以<strong>复制粘贴</strong>你的工厂的一部分了!按住 CTRL - 键并拖动鼠标来选择一块区域,然后按C键复制。<br><br>粘贴并<strong>不是免费的</strong>,你需要使用<strong>蓝图图形</strong>来粘贴你的蓝图。蓝图图形是你刚刚交付的图形。 + desc: 您现在可以<strong>复制粘贴</strong>您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域,然后按C键复制。 + <br><br>粘贴并<strong>不是免费的</strong>,您需要制造<strong>蓝图图形</strong>来负担。蓝图图形是您刚刚交付的图形。 no_reward: title: 下一关 desc: 这一关没有奖励,但是下一关有!<br><br> - PS:你生产过的<strong>所有</strong>图形都会被用来<strong>升级建筑</strong>。 + 注意:最高明的规划师都不会破坏原有的工厂设施,您生产过的<strong>所有图形</strong>都会被用于<strong>解锁升级</strong>。 no_reward_freeplay: title: 下一关 - desc: 恭喜你!另外,我们已经计划在独立版中加入更多内容! + desc: 恭喜您!另外,我们已经计划在完整版中加入更多内容! reward_balancer: - title: Balancer - desc: The multifunctional <strong>balancer</strong> has been unlocked - It can - be used to build bigger factories by <strong>splitting and merging - items</strong> onto multiple belts! + title: 平衡器 + desc: 恭喜!您解锁了多功能<strong>平衡器</strong>,它能够<strong>分割和合并</strong>多个传送带的资源,可以用来建造更大的工厂! reward_merger: - title: Compact Merger - desc: You have unlocked a <strong>merger</strong> variant of the - <strong>balancer</strong> - It accepts two inputs and merges them - into one belt! + title: 合并器(小型) + desc: 恭喜!您解锁了<strong>平衡器</strong>的变体<strong>合并器</strong>,它能合并两个输入到同一个传送带上! reward_belt_reader: - title: Belt reader - desc: You have now unlocked the <strong>belt reader</strong>! It allows you to - measure the throughput of a belt.<br><br>And wait until you unlock - wires - then it gets really useful! + title: 传送带读取器 + desc: 恭喜!您解锁了<strong>传送带读取器</strong>!它能够测量传送带上的生产率。 + <br><br>等您解锁了<strong>电线层</strong>后,它将会极其有用! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: 旋转机(180度) + desc: 恭喜!您解锁了<strong>旋转器(180度)</strong>!它能帮您把一个图形旋转180度(Surprise! :D) reward_display: - title: Display - desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the - wires layer to visualize it!<br><br> PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + title: 显示器 + desc: 恭喜!您已经解锁了<strong>显示器</strong>,它可以显示一个在<strong>电线层上连接的信号</strong>! + <br>注意:您注意到<strong>传送读取器</strong>和<strong>存储器</strong>输出的他们最后读取的物品了吗?试着在显示屏上展示一下! reward_constant_signal: - title: Constant Signal - desc: You unlocked the <strong>constant signal</strong> building on the wires - layer! This is useful to connect it to <strong>item filters</strong> - for example.<br><br> The constant signal can emit a - <strong>shape</strong>, <strong>color</strong> or - <strong>boolean</strong> (1 / 0). + title: 恒定信号 + desc: 恭喜!您解锁了生成于电线层之上的<strong>恒定信号</strong>,把它连接到<strong>过滤器</strong>时非常有用。 + <br>比如,它能发出图形、颜色、开关值(1 / 0)的固定信号。 reward_logic_gates: - title: Logic Gates - desc: You unlocked <strong>logic gates</strong>! You don't have to be excited - about this, but it's actually super cool!<br><br> With those gates - you can now compute AND, OR, XOR and NOT operations.<br><br> As a - bonus on top I also just gave you a <strong>transistor</strong>! + title: 逻辑门 + desc: 您解锁了<strong>逻辑门</strong>!它们是个好东西!<br> + 您可以用它们来进行'与,或,非,异或'操作。<br><br>作为奖励,我还给您解锁了<strong>晶体管</strong>! reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - <strong>simulate the processing of shapes</strong>!<br><br> You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:<br><br> - - Build an <strong>automated machine</strong> to create any possible - shape requested by the HUB (I recommend to try it!).<br><br> - Build - something cool with wires.<br><br> - Continue to play - regulary.<br><br> Whatever you choose, remember to have fun! + title: 模拟处理器 + desc: 我刚刚给了一大堆新设施,让您可以<strong>模拟形状的处理过程</strong>!<br> + 您现在可以在电线层上模拟切割机,旋转机,堆叠机和其他机器!<br> 有了这些,您可以选择下面三个方向来继续游戏:<br> + -建立一个<strong>自动化机器</strong>以生产出任何中心基地需要图形(建议一试!)。<br> + -用<strong>电线层</strong>做些酷炫的东西。<br> -继续正常游戏。<br> 放飞想象,尽情创造! reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!<br><br> For the beginning I unlocked you the <strong>Quad - Painter</strong> - Connect the slots you would like to paint with on - the wires layer!<br><br> To switch to the wires layer, press - <strong>E</strong>. <br><br> PS: <strong>Enable hints</strong> in - the settings to activate the wires tutorial!" + title: 电线 & 四口上色器 + desc: 恭喜!您解锁了<strong>电线层</strong>:它是正常层之上的一个层,它将带来了许多新的机制!<br><br> + 首先我解锁了您的<strong>四口上色器</strong>,按<strong>E</strong>键切换到电线层,然后连接您想要染色的槽,用开关来控制开启。<br><br> + <strong>提示</strong>:可在设置中打开电线层教程! reward_filter: - title: Item Filter - desc: You unlocked the <strong>Item Filter</strong>! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.<br><br> You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + title: 物品过滤器 + desc: 恭喜!您解锁了<strong>物品过滤器</strong>!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。<br><br> + 您也可以输入开关值(1 / 0)信号来激活或者禁用它。 reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: 试玩结束 + desc: 恭喜!您已经通关了试玩版本!<br>更多挑战,请至Steam商城购买完整版!谢谢支持! settings: title: 设置 categories: general: 通用 userInterface: 用户界面 advanced: 高级 - performance: Performance + performance: 性能 versionBadges: dev: 开发版本 staging: 预览版本 prod: 正式版本 - buildDate: 于<at-date>编译 + buildDate: 与<at-date>编译 labels: uiScale: title: 用户界面大小 - description: 改变用户界面大小。用户界面会随着设备分辨率缩放,这个设置决定缩放比例。 + description: 改变用户界面大小。用户界面会随着屏幕分辨率缩放,这个设置决定缩放比例。 scales: super_small: 最小 small: 较小 @@ -705,7 +729,7 @@ settings: huge: 最大 scrollWheelSensitivity: title: 缩放灵敏度 - description: 改变缩放灵敏度(鼠标滚轮或者触控板)。 + description: 改变屏幕缩放灵敏度(用鼠标滚轮或者触控板控制缩放)。 sensitivity: super_slow: 最低 slow: 较低 @@ -714,10 +738,10 @@ settings: super_fast: 最高 language: title: 语言 - description: 改变语言。所有的翻译皆由玩家提供,且有可能正在施工中! + description: 改变语言。官方中文版已更新,欢迎玩家继续提供更好的翻译意见。 fullscreen: title: 全屏 - description: 全屏以获得更好的游戏体验。仅在独立版中可用。 + description: 全屏可获得更好的游戏体验。仅在完整版中可用。 soundsMuted: title: 关闭音效 description: 关闭所有音效。 @@ -732,17 +756,17 @@ settings: light: 浅色 refreshRate: title: 模拟频率、刷新频率 - description: 如果你的显示器是 144Hz - 的,请在这里更改刷新频率,这样游戏可以正确地根据你的屏幕进行模拟。但是如果你的电脑性能不佳,提高刷新频率可能降低帧数。 + description: 如果您的显示器刷新频率是 + 144Hz,请在这里更改刷新频率,这样游戏可以正确地根据您的屏幕进行模拟。但是如果您的电脑性能不佳,提高刷新频率可能降低帧数。 alwaysMultiplace: title: 多重放置 - description: 开启这个选项之后放下建筑将不会取消建筑选择。等同于一直按下 SHIFT 键。 + description: 开启这个选项之后放下设施将不会取消设施选择。等同于一直按下 SHIFT 键。 offerHints: title: 提示与教程 - description: 是否显示提示、教程以及一些其他的帮助理解游戏的 UI 元素。 + description: 是否显示提示、教程以及一些其他的帮助理解游戏的 UI 元素。建议新手玩家开启。 movementSpeed: title: 移动速度 - description: 改变摄像头移动速度 + description: 改变摄像头的移动速度。 speeds: super_slow: 最慢 slow: 较慢 @@ -752,13 +776,13 @@ settings: extremely_fast: 最快 enableTunnelSmartplace: title: 智能隧道放置 - description: 启用后,放置隧道时会将多余的传送带移除。 此外,拖动隧道可以快速铺设隧道,以及移除不必要的隧道。 + description: 启用后,放置隧道时会将多余的传送带移除。此外,拖动隧道可以快速铺设隧道,以及移除不必要的隧道。 vignette: title: 晕映 - description: 启用晕映,将屏幕角落里的颜色变深,更容易阅读文本。 + description: 启用晕映功能,可将屏幕角落里的颜色变深,更容易阅读文本。 autosaveInterval: - title: 自动保存间隔 - description: 在这里控制你的游戏多长时间保存一次,或者完全关闭这个功能。 + title: 自动存档间隔 + description: 在这里控制您的游戏多长时间自动存档一次,你也可以完全关闭这个功能。建议打开。 intervals: one_minute: 1分钟 two_minutes: 2分钟 @@ -767,80 +791,70 @@ settings: twenty_minutes: 20分钟 disabled: 关闭 compactBuildingInfo: - title: 精简建筑信息 - description: 缩小建筑信息展示框。如果打开,放置建筑时建筑将不再显示建筑说明和图片,只显示建筑速度或其他数据。 + title: 精简设施信息 + description: 缩小设施信息展示框。如果打开,放置设施时将不再显示说明和图片,只显示建造速度或其他数据。 disableCutDeleteWarnings: title: 关闭剪切/删除警告 - description: 如果打开,将不再在剪切或者删除100+建筑时显示警告信息。 + description: 如果打开,将不再在剪切或者删除100+实体时显示警告信息。 enableColorBlindHelper: title: 色盲模式 - description: 提供一些分辨颜色的工具。目前当鼠标移至颜色资源上方时,屏幕上方会显示颜色名称。 + description: 提供多种工具,帮助色盲玩家可正常进行游戏。 rotationByBuilding: - title: 记忆建筑方向 - description: 每一类建筑都会记住各自上一次的旋转方向。如果你经常在不同建筑类型之间切换,这个设置会让游戏更加舒适。 + title: 记忆设施方向 + description: 每一类设施都会记住各自上一次的旋转方向。如果您经常在不同设施类型之间切换,这个设置会让游戏操控更加便捷。 soundVolume: - title: Sound Volume - description: Set the volume for sound effects + title: 音效音量 + description: 设置音效的音量 musicVolume: - title: Music Volume - description: Set the volume for music + title: 音乐音量 + description: 设置音乐的音量 lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: 低质量地图资源 + description: 放大时简化地图上资源的渲染以提高性能。开启甚至会让画面看起来更干净,低配置电脑玩家建议开启! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: 禁用网格 + description: 禁用平铺网格有助于提高性能。这也让游戏画面看起来更干净! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: 右键取消 + description: 默认启用。在选择要放置的设施时,单击鼠标右键即可取消。如果禁用,则可以通过在放置设施时单击鼠标右键来删除设施。 lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: 低质量纹理(丑陋) + description: 使用低质量纹理提高游戏性能。但是这样游戏会看起来很丑! displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: 显示大块的边框 + description: 游戏将每一个大块分成16*16的小块,如果启用将会显示每个大块的边框。 pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: 在资源块上选择开采器 + description: 默认开启,当在资源块上使用选取器时会选择开采器。 simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: 简单的传送带(简陋) + description: 除非鼠标放在传送带上,不然不会渲染传送带上的物品。启用可提升游戏性能。但除非特别需要性能,否则不推荐启用。 enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: 鼠标平移屏幕 + description: 在鼠标滑到屏幕边缘时可以移动地图。移动速度取决于移动速度设置。 zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: 鼠标位置缩放 + description: 启用后在鼠标所在位置进行屏幕缩放,否则在屏幕中间进行缩放。 mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: 地图资源图形尺寸 + description: 控制地图总览时图形的尺寸(指缩小视野时)。 + shapeTooltipAlwaysOn: + title: 图形工具提示-始终显示 + description: 在设施上悬停时是否始终显示图形工具提示, 而不是必须按住“Alt”键。 rangeSliderPercentage: <amount> % + tickrateHz: <amount> 赫兹 keybindings: - title: 按键设置 - hint: 提示:使用 CTRL、SHIFT、ALT!这些建在放置建筑时有不同的效果。 - resetKeybindings: 重置按键设置 + title: 按键设定 + hint: 提示:使用 CTRL、SHIFT、ALT!这些键在放置设施时有不同的效果。 + resetKeybindings: 重置按键设定 categoryLabels: general: 通用 ingame: 游戏 navigation: 视角 placement: 放置 massSelect: 批量选择 - buildings: 建筑快捷键 - placementModifiers: 放置建筑修饰键 + buildings: 设施快捷键 + placementModifiers: 放置设施修饰键 mappings: confirm: 确认 back: 返回 @@ -848,7 +862,7 @@ keybindings: mapMoveRight: 右 mapMoveDown: 下 mapMoveLeft: 左 - centerMap: 回到基地 + centerMap: 回到中心基地 mapZoomIn: 放大 mapZoomOut: 缩小 createMarker: 创建地图标记 @@ -858,130 +872,211 @@ keybindings: toggleFPSInfo: 开关帧数与调试信息 belt: 传送带 underground_belt: 隧道 - miner: 开采机 + miner: 开采器 cutter: 切割机 rotater: 旋转机 stacker: 堆叠机 - mixer: 混色机 - painter: 上色机 + mixer: 混色器 + painter: 上色器 trash: 垃圾桶 rotateWhilePlacing: 顺时针旋转 rotateInverseModifier: "修饰键: 改为逆时针旋转" - cycleBuildingVariants: 选择建筑变体 + cycleBuildingVariants: 切换所选择设施变体 confirmMassDelete: 确认批量删除 - cycleBuildings: 选择建筑 + cycleBuildings: 切换所选择设施 massSelectStart: 开始批量选择 massSelectSelectMultiple: 选择多个区域 - massSelectCopy: 复制 + massSelectCopy: 复制区域 placementDisableAutoOrientation: 取消自动定向 placeMultiple: 继续放置 - placeInverse: 反向放置传送带 + placeInverse: 反向自动传送带方向 pasteLastBlueprint: 粘贴上一张蓝图 - massSelectCut: 剪切 + massSelectCut: 剪切区域 exportScreenshot: 导出截图 mapMoveFaster: 快速移动 lockBeltDirection: 启用传送带规划 switchDirectionLockSide: 规划器:换边 - pipette: 选取器 - menuClose: Close Menu - switchLayers: Switch layers - wire: Energy Wire - balancer: Balancer - storage: Storage - constant_signal: Constant Signal - logic_gate: Logic Gate - lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing - display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare - item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + pipette: 吸取器 + menuClose: 关闭菜单 + switchLayers: 切换层 + wire: 电线 + balancer: 平衡器 + storage: 存储器 + constant_signal: 恒定信号 + logic_gate: 逻辑门 + lever: 控制杆 + filter: 过滤器 + wire_tunnel: 电线隧道 + display: 显示器 + reader: 传送带读取器 + virtual_processor: 模拟切割机 + transistor: 晶体管 + analyzer: 图形分析器 + comparator: 比较器 + item_producer: 物品生产器(沙盒模式) + copyWireValue: 电线:复制指定电线上的值 + rotateToUp: 向上旋转 + rotateToDown: 向下旋转 + rotateToRight: 向右旋转 + rotateToLeft: 向左旋转 + constant_producer: 常量生成器 + goal_acceptor: 目标接收器 + block: 方块 + massSelectClear: 清除传送带 + showShapeTooltip: 显示图形输出提示 about: title: 关于游戏 body: >- 本游戏由 <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a>(我)开发,并且已经开源。<br><br> - 如果你想参与开发,请查看 <a href="<githublink>" target="_blank">shapez.io on github</a>。<br><br> + 如果您想参与开发,请查看 <a href="<githublink>" target="_blank">shapez.io on github</a>。<br><br> - 这个游戏的开发少不了热情的 Discord 社区。请加入我们的 <a href="<discordlink>" target="_blank">Discord 服务器</a>!<br><br> + 这个游戏的开发获得了 Discord 社区内热情玩家的巨大支持。诚挚邀请您加入我们的 <a href="<discordlink>" target="_blank">Discord 服务器</a>!<br><br> 本游戏的音乐由 <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> 制作——他是个很棒的伙伴。<br><br> - 最后,我想感谢我最好的朋友 <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> ——如果没有与他的异星工厂(factorio)的游戏体验,shapez.io将不会存在。 + 最后,我想感谢我最好的朋友 <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> ——如果没有他的《异星工厂》(factorio)带给我的体验和启发,《异形工厂》(shapez.io)将不会存在。 changelog: title: 版本日志 demo: features: restoringGames: 恢复存档 - importingGames: 倒入存档 + importingGames: 导入存档 oneGameLimit: 最多一个存档 - customizeKeybindings: 按键设置 + customizeKeybindings: 按键设定 exportingBase: 导出工厂截图 settingNotAvailable: 在试玩版中不可用。 tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing <b>R</b>. - - Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use <b>T</b> to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with <b>T</b> - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding <b>SHIFT</b> will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding <b>CTRL</b> allows to place multiple buildings. - - You can hold <b>ALT</b> to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use <b>CTRL</b> + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - 基地接受所有创造后输入的图形!并不限于现有的图形! + - 让你的工厂尽量模块化,不然后期你会面对大麻烦! + - 不要让设施太过靠近基地,不然可能会乱成一锅粥! + - 如果堆叠不起作用,尝试切换输入的图形来重新组合。 + - 您可以通过 <b>R</b> 键切换传送带规化方向。 + - 按住 <b>CTRL</b> 键拖动传送带将始终保持它现有的传送方向。 + - 只要所有设施等级一致,效率也将一致。 + - 串行执行比并行执行更有效。 + - 在后面的游戏中您会解锁更多设施的变种! + - 您可以使用<b>T</b>键切换不同的设施变种。 + - 对称是关键! + - 您可以使用隧道构建不同层次的通道。 + - 试着建造紧凑型工厂,它会给您带来好处的! + - 您可以按<b>T</b>来切换上色器的镜像变体。 + - 正确的设施比例将使效率最大化。 + - 在传送带和开采器等级一致时,5个开采器就可以占满一条传送带的运量。 + - 别忘了隧道! + - 您不必为了充分发挥效率而平均分配物品。 + - 按住<b>SHIFT</b>键将激活传送带路线规划,这样可以更有效地规划如何放置长距离的传送带。 + - 切割机总是垂直切割图形,而不管图形方向如何。 + - 还记得吗?混合三原色能够获得白色。 + - 存储缓冲区优先处理左侧的输出。 + - 您值得花时间来构建可重复的设计! + - 按住<b>CTRL</b>键能够放置多个设施。 + - 您可以按住<b>ALT</b>来反向放置传送带的方向。 + - 效率是关键! + - 离基地越远图形越复杂。 + - 机器的速度是有限的,把它们分开可以获得最高的效率。 + - 使用平衡器最大化您的效率。 + - 有条不紊!尽量不要过多地穿过传送带。 + - 凡事预则立!不预则废! + - 尽量不要删除旧的设施和生产线,您会需要他们生产的东西来升级设施并提高效率。 + - 先给自己定一个小目标:自己完成20级!不去看别人的攻略! + - 不要把问题复杂化,试着保持简单,您会成功的。 + - 您可能需要在游戏的后期重复使用工厂。把您的工厂规划成可重复使用的。 + - 有时,您可以在地图上直接找到您需要的图形,并不需要使用堆叠机去合成它。 + - 风车图形不会自动产生 + - 在切割前,给您的图形上色可以获得最高的效率。 + - 模块化,可以使您提高效率。 + - 记得做一个单独的蓝图工厂。 + - 仔细看看调色器,您就会调色了。 + - <b>CTRL+点击</b>能够选择一块区域。 + - 设施建得离基地太近很可能会妨碍以后的工作。 + - 使用升级列表中每个形状旁边的固定图标将其固定到屏幕上。 + - 地图无限,放飞想象,尽情创造。 + - 向您推荐Factorio!这是我最喜欢的游戏。向神作致敬! + - 四向切割机从右上开始进行顺时针切割! + - 在主界面您可以下载您的游戏存档文件! + - 这个游戏有很多有用的快捷键!一定要到快捷键页面看看。 + - 这个游戏有很多设置可以提高游戏效率,请一定要了解一下! + - 中心基地有个指向它所在方向的小指南指针! + - 想清理传送带,可剪切那块区域然后将其在相同位置粘贴。 + - 按F4显示FPS。 + - 按两次F4显示您鼠标和镜头所在的块。 + - 您可以点击被固定在屏幕左侧的图形来解除固定。 + - 您可以单击左侧的固定形状将其取消固定。 +puzzleMenu: + play: 游戏 + edit: 编辑 + title: 谜题模式 + createPuzzle: 创建谜题 + loadPuzzle: 载入 + reviewPuzzle: 审阅 & 发布 + validatingPuzzle: 验证谜题 + submittingPuzzle: 提交谜题 + noPuzzles: 暂无满足此部分条件的谜题。 + categories: + levels: 关卡 + new: 最新 + top-rated: 最受好评 + mine: 我的谜题 + easy: 简单 + hard: 困难 + completed: 完成 + medium: 普通 + official: 官方 + trending: 本日趋势 + trending-weekly: 本周趋势 + categories: 分类 + difficulties: 根据难度 + account: 我的谜题 + search: 查找 + validation: + title: 无效谜题 + noProducers: 请放置<strong>常量生成器</strong>! + noGoalAcceptors: 请放置<strong>目标接收器</strong>! + goalAcceptorNoItem: 一个或多个目标接收器尚未被分配图形目标。请向它们传递图形以设置目标。 + goalAcceptorRateNotMet: 一个或多个目标接收器没有获得足够数量的图形。请确保所有接收器的充能条指示器均为绿色。 + buildingOutOfBounds: 一个或多个设施位于可建造区域之外。请增加区域面积,或将超出区域的设施移除。 + autoComplete: 请确保您的常量生成器不会直接向目标接收器传递目标图形。否则您的谜题会自动完成。 + difficulties: + easy: 简单 + medium: 普通 + hard: 困难 + unknown: 未定级 + dlcHint: 如尚未购买DLC,请在您的Steam库中右键点击异形工厂, DLCs.然后选择属性-DLC。 + search: + action: 搜索 + placeholder: 输入谜题或作者名称 + includeCompleted: 包括已完成 + difficulties: + any: 任何难度 + easy: 简单 + medium: 普通 + hard: 困难 + durations: + any: 任何挑战时间 + short: 快速 (< 2 分钟) + medium: 正常 + long: 较长 (> 10 分钟) +backendErrors: + ratelimit: 你的操作太频繁了。请稍等。 + invalid-api-key: 与后台通信失败,请尝试更新或重新启动游戏(无效的Api密钥)。 + unauthorized: 与后台通信失败,请尝试更新或重新启动游戏(未经授权)。 + bad-token: 与后台通信失败,请尝试更新或重新启动游戏(令牌错误)。 + bad-id: 谜题标识符无效。 + not-found: 找不到给定的谜题。 + bad-category: 找不到给定的类别。 + bad-short-key: 给定的短代码错误。 + profane-title: 您的谜题标题包含污言秽语。 + bad-title-too-many-spaces: 您的谜题标题过短。 + bad-shape-key-in-emitter: 常量生成器包含无效项目。 + bad-shape-key-in-goal: 目标接收器包含无效项目。 + no-emitters: 您的谜题没有任何常量生成器。 + no-goals: 您的谜题没有任何目标接收器。 + short-key-already-taken: 此短代码已被使用,请使用其他短代码。 + can-not-report-your-own-puzzle: 您无法上报您自己的谜题问题。 + bad-payload: 此请求包含无效数据。 + bad-building-placement: 您的谜题包含放置错误的设施。 + timeout: 请求超时。 + too-many-likes-already: 您的谜题已经得到了许多玩家的赞赏。如果您仍然希望删除它,请联系support@shapez.io! + no-permission: 您没有执行此操作的权限。 diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 06ebdd9b..81e5c8a7 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -8,38 +8,16 @@ steamPage: 除此之外,你也必須不斷累加你的生產量來達到升級的需求,達成目標的方法無他,只有不斷地擴張! 遊戲初期只需要組合特定圖形,接著玩家會被要求幫圖形上色,有時甚至需要先混色才能達到目標。 玩家可以在 Steam 購買本游戲的單機版,如果還在猶豫,也可以到 shapez.io 先免費試玩再決定! - title_advantages: 單機版優點 - advantages: - - <b>12個新關卡</b> (總共有26關) - - <b>18個新建築</b> 幫助玩家自動化整個工廠! - - <b>20個升級</b> 讓遊玩時間更久! - - <b>電路更新</b> 帶給玩家新次元體驗! - - <b>深色模式</b>! - - 無限存檔 - - 無限標記 - - 支持我! ❤️ - title_future: 未來計劃 - planned: - - 藍圖圖庫(單機版獨有) - - Steam 成就 - - 拼圖模式 - - 迷你地圖 - - 模組 - - 沙盒模式 - - ... 還有更多! - title_open_source: 本遊戲已開源! - title_links: 連結 - links: - discord: 官方 Discord 伺服器 - roadmap: Roadmap - subreddit: Reddit - source_code: 原始碼(GitHub) - translate: 幫助我們翻譯! - text_open_source: |- - 任何人都可以幫助我開發遊戲或提供建議,我很活躍於各個社群媒體,也會讀所有的建議與回饋、並嘗試改善。 - 記得查看我的 trello board 以了解我的完整計畫! + what_others_say: What people say about shapez.io + nothernlion_comment: This game is great - I'm having a wonderful time playing, + and time has flown by. + notch_comment: Oh crap. I really should sleep, but I think I just figured out + how to make a computer in shapez.io + steam_review_comment: This game has stolen my life and I don't want it back. + Very chill factory game that won't let me stop making my lines more + efficient. global: - loading: 加載中 + loading: 載入中 error: 錯誤 thousandsDivider: " " decimalSeparator: . @@ -60,7 +38,7 @@ global: xDaysAgo: <x>天前 secondsShort: <seconds>秒 minutesAndSecondsShort: <minutes>分 <seconds>秒 - hoursAndMinutesShort: <hours>小時 <minutes>秒 + hoursAndMinutesShort: <hours>小時 <minutes>分 xMinutes: <x>分鐘 keys: tab: TAB @@ -68,18 +46,19 @@ global: alt: ALT escape: ESC shift: SHIFT - space: 空格 + space: 空白鍵 + loggingIn: Logging in demoBanners: title: 試玩版 - intro: 獲取單機版以解鎖所有功能! + intro: 取得單機版以解鎖所有功能! mainMenu: play: 開始遊戲 changelog: 更新日誌 - importSavegame: 導入 + importSavegame: 匯入存檔 openSourceHint: 本遊戲已開源! discordLink: 官方 Discord 伺服器 helpTranslate: 協助我們翻譯! - browserWarning: 很抱歉, 本遊戲在當前瀏覽器上可能運行緩慢! 使用 chrome 或者獲取單機版以得到更好的體驗。 + browserWarning: 很抱歉,本遊戲在目前的瀏覽器上執行效率可能會有所緩慢!使用 Chrome 或者取得單機版以得到更好的體驗。 savegameLevel: <x>級 savegameLevelUnknown: 未知關卡 continue: 繼續 @@ -87,6 +66,12 @@ mainMenu: madeBy: 作者:<author-link> subreddit: Reddit savegameUnnamed: 未命名 + puzzleMode: Puzzle Mode + back: Back + puzzleDlcText: Do you enjoy compacting and optimizing factories? Get the Puzzle + DLC now on Steam for even more fun! + puzzleDlcWishlist: Wishlist now! + puzzleDlcViewNow: View Dlc dialogs: buttons: ok: 確認 @@ -95,11 +80,14 @@ dialogs: later: 之後 restart: 重啟 reset: 重置 - getStandalone: 獲得單機版 + getStandalone: 取得單機版 deleteGame: 我知道我在做什麼 viewUpdate: 查看更新 showUpgrades: 顯示建築升級 - showKeybindings: 顯示按鍵設置 + showKeybindings: 顯示按鍵設定 + retry: Retry + continue: Continue + playOffline: Play Offline importSavegameError: title: 匯入錯誤 text: 存檔匯入失敗: @@ -117,10 +105,10 @@ dialogs: text: 存檔刪除失敗 restartRequired: title: 需要重啟 - text: 你需要重啟遊戲以套用變更的設置。 + text: 你需要重啟遊戲以套用變更的設定。 editKeybinding: - title: 更改按鍵設置 - desc: 請按下你想要使用的按鍵,或者按下 ESC 鍵來取消設置。 + title: 更改按鍵設定 + desc: 請按下你想要使用的按鍵,或者按下 ESC 鍵來取消設定。 resetKeybindingsConfirmation: title: 重置所有按鍵 desc: 這將會重置所有按鍵,請確認。 @@ -132,13 +120,13 @@ dialogs: desc: 你嘗試使用了 <feature> 功能。該功能在試玩版中不可用。請考慮購買單機版以獲得更好的體驗。 oneSavegameLimit: title: 存檔數量限制 - desc: 試玩版中只能保存一份存檔。請刪除舊存檔或者獲取單機版! + desc: 試玩版中只能保存一份存檔。請刪除舊存檔或者取得單機版! updateSummary: title: 更新了! - desc: "以下為自上次遊戲以來更新的內容:" + desc: 以下為自上次遊戲以來更新的內容: upgradesIntroduction: title: 解鎖建築升級 - desc: 你生產過的所有圖形可以被用來升級建築。<strong>不要銷毀你之前建造的工廠!</strong> 升級選單在屏幕右上角。 + desc: 你生產過的所有圖形可以被用來升級建築。<strong>不要銷毀你之前建造的工廠!</strong> 升級選單在螢幕右上角。 massDeleteConfirm: title: 確認刪除 desc: 你將要刪除很多建築,準確來說有<count>幢!你確定要這麼做嗎? @@ -147,17 +135,17 @@ dialogs: desc: 你還沒有解鎖藍圖功能!完成更多的關卡來解鎖藍圖。 keybindingsIntroduction: title: 實用按鍵 - desc: "這個遊戲有很多能幫助搭建工廠的使用按鍵。 以下是其中的一些,記得在<strong>按鍵設置</strong>中查看其他的! <br><br> - <code class='keybinding'>CTRL</code> + 拖動:選擇區域以復製或刪除。 <br> <code + desc: "這個遊戲有很多能幫助搭建工廠的使用按鍵。 以下是其中的一些,記得在<strong>按鍵設定</strong>中查看其他的! <br><br> + <code class='keybinding'>CTRL</code> + 拖曳:選擇區域以複製或刪除。 <br> <code class='keybinding'>SHIFT</code>: 按住以放置多個。 <br> <code - class='keybinding'>ALT</code>: 反向放置傳送帶。 <br>" + class='keybinding'>ALT</code>: 反向放置輸送帶。 <br>" createMarker: - title: 創建標記 - desc: 給地圖標記起一個的名字。 你可以在名字中加入一個<strong>短代碼</strong>以加入圖形。 (你可以在 <link>here</link> - 生成短代碼。) + title: 建立標記 + desc: 給地圖標記取一個名字。你可以在名字中加入一個<strong>簡短代碼</strong>以加入圖形。(你可以在<link>這裡</link> + 建立簡短代碼。) titleEdit: 修改標記 markerDemoLimit: - desc: 在試玩版中你只能創建兩個地圖標記。請獲取單機版以創建更多標記。 + desc: 在試玩版中你只能建立兩個地圖標記。請取得單機版以建立更多標記。 massCutConfirm: title: 確認剪下 desc: 你將要剪下很多建築,準確來說有<count>幢!你確定要這麼做嗎? @@ -169,17 +157,81 @@ dialogs: desc: 你的複製圖形不夠貼上!你確定要剪下嗎? editSignal: title: 訊號設定 - descItems: "選擇一個預先設定的物件" - descShortKey: ... 或輸入圖形的<strong>短代碼</strong> (可以由 <link>here</link> 生成) + descItems: 選擇一個預先設定的物件 + descShortKey: …或輸入圖形的<strong>簡短代碼</strong>(可以在<link>這裡</link>建立) renameSavegame: title: 重新命名存檔 desc: 你可以在這裡重新命名存檔 tutorialVideoAvailable: - title: 有教程 - desc: 這個等級有教學影片!你想觀看嗎? + title: 有教學 + desc: 這個等級有教學影片!你想觀看嗎? tutorialVideoAvailableForeignLanguage: - title: 有教程 - desc: 這個等級目前只有英文版教學影片,你想觀看嗎? + title: 有教學 + desc: 這個等級目前只有英文版教學影片,你想觀看嗎? + editConstantProducer: + title: Set Item + puzzleLoadFailed: + title: Puzzles failed to load + desc: "Unfortunately the puzzles could not be loaded:" + submitPuzzle: + title: Submit Puzzle + descName: "Give your puzzle a name:" + descIcon: "Please enter a unique short key, which will be shown as the icon of + your puzzle (You can generate them <link>here</link>, or choose one + of the randomly suggested shapes below):" + placeholderName: Puzzle Title + puzzleResizeBadBuildings: + title: Resize not possible + desc: You can't make the zone any smaller, because then some buildings would be + outside the zone. + puzzleLoadError: + title: Bad Puzzle + desc: "The puzzle failed to load:" + offlineMode: + title: Offline Mode + desc: We couldn't reach the servers, so the game has to run in offline mode. + Please make sure you have an active internet connection. + puzzleDownloadError: + title: Download Error + desc: "Failed to download the puzzle:" + puzzleSubmitError: + title: Submission Error + desc: "Failed to submit your puzzle:" + puzzleSubmitOk: + title: Puzzle Published + desc: Congratulations! Your puzzle has been published and can now be played by + others. You can now find it in the "My puzzles" section. + puzzleCreateOffline: + title: Offline Mode + desc: Since you are offline, you will not be able to save and/or publish your + puzzle. Would you still like to continue? + puzzlePlayRegularRecommendation: + title: Recommendation + desc: I <strong>strongly</strong> recommend playing the normal game to level 12 + before attempting the puzzle DLC, otherwise you may encounter + mechanics not yet introduced. Do you still want to continue? + puzzleShare: + title: Short Key Copied + desc: The short key of the puzzle (<key>) has been copied to your clipboard! It + can be entered in the puzzle menu to access the puzzle. + puzzleReport: + title: Report Puzzle + options: + profane: Profane + unsolvable: Not solvable + trolling: Trolling + puzzleReportComplete: + title: Thank you for your feedback! + desc: The puzzle has been flagged. + puzzleReportError: + title: Failed to report + desc: "Your report could not get processed:" + puzzleLoadShortKey: + title: Enter short key + desc: Enter the short key of the puzzle to load it. + puzzleDelete: + title: Delete Puzzle? + desc: Are you sure you want to delete '<title>'? This can not be undone! ingame: keybindingsOverlay: moveMap: 移動 @@ -191,19 +243,20 @@ ingame: disableAutoOrientation: 關閉自動定向 toggleHud: 開關基地 placeBuilding: 放置建築 - createMarker: 創建地圖標記 + createMarker: 建立地圖標記 delete: 銷毀 pasteLastBlueprint: 貼上一個藍圖 - lockBeltDirection: 啟用傳送帶規劃 + lockBeltDirection: 啟用輸送帶規劃 plannerSwitchSide: 規劃器換邊 cutSelection: 剪下選取 copySelection: 複製選取 clearSelection: 清空選取 - pipette: 吸附 + pipette: 滴管 switchLayers: 切換層 + clearBelts: Clear belts buildingPlacement: - cycleBuildingVariants: 按<key>鍵以選擇建築變體. - hotkeyLabel: "快捷鍵: <key>" + cycleBuildingVariants: 按<key>鍵以選擇建築變體。 + hotkeyLabel: 快捷鍵:<key> infoTexts: speed: 效率 range: 範圍 @@ -213,14 +266,14 @@ ingame: itemsPerSecondDouble: (2倍) tiles: <x>格 levelCompleteNotification: - levelTitle: 第<level>級 + levelTitle: 第<level>關 completed: 完成 unlockText: 解鎖<reward>! buttonNextLevel: 下一關 notifications: newUpgrade: 有新的更新啦! gameSaved: 遊戲已保存。 - freeplayLevelComplete: 已完成第<level>級! + freeplayLevelComplete: 已完成第<level>關! shop: title: 建築升級 buttonUnlock: 升級 @@ -246,48 +299,49 @@ ingame: settingsMenu: playtime: 遊戲時間 buildingsPlaced: 建築數量 - beltsPlaced: 傳送帶數量 + beltsPlaced: 輸送帶數量 tutorialHints: title: 需要幫助? showHint: 顯示 hideHint: 關閉 blueprintPlacer: - cost: 需要 + cost: 消耗 waypoints: waypoints: 地圖標記 hub: 基地 - description: 在標記上按左鍵以快速移動到標記區域,在標記上按右鍵以刪除該標記。 <br><br>按 <keybinding> - 為當前區域建立地圖標記或按 <strong>right-click</strong> 為選取區域建立地圖標記。 - creationSuccessNotification: 成功創建地圖標記。 + description: 在標記上按左鍵以快速移動到標記區域,在標記上按右鍵以刪除該標記。<br><br>按 <keybinding> + 為目前區域建立地圖標記或按<strong>右鍵</strong>為選取區域建立地圖標記。 + creationSuccessNotification: 成功建立地圖標記。 interactiveTutorial: - title: 教程 + title: 教學 hints: - 1_1_extractor: 在<strong>圓形礦脈</strong>上放一個<strong>開採機</strong>來獲取圓形! - 1_2_conveyor: 用<strong>傳送帶</strong>將你的開採機連接到基地上! - <br><br>提示:用你的游標<strong>按下並拖動</strong>傳送帶! - 1_3_expand: 這<strong>不是</strong>一個放置型遊戲!建造更多的開採機和傳送帶來更快地完成目標。 <br><br> + 1_1_extractor: 在<strong>圓形礦脈</strong>上放一個<strong>開採機</strong>來採集圓形! + 1_2_conveyor: 用<strong>輸送帶</strong>將你的開採機連接到基地上! + <br><br>提示:用你的游標<strong>按下並拖曳</strong>輸送帶! + 1_3_expand: 這<strong>不是</strong>一個放置型遊戲!建造更多的開採機和輸送帶來更快地完成目標。 <br><br> 提示:按住<strong>SHIFT</strong>鍵來放置多個開採機,用<strong>R</strong>鍵旋轉它們。 - 2_1_place_cutter: "現在放置一個<strong>切割機</strong>並利用它把圓圈切成兩半!<br><br> - PS: 不論切割機的方向,它都會把圖形<strong>垂直地</strong>切成兩半。" - 2_2_place_trash: 切割機可能會<strong>堵塞並停止運作</strong>!<br><br> + 2_1_place_cutter: "現在放置一個<strong>切割機</strong>並利用它把圓圈切成兩半!<br><br> PS: + 不論切割機的方向,它都會把圖形<strong>垂直地</strong>切成兩半。" + 2_2_place_trash: 切割機可能會<strong>堵塞並停止運作</strong>!<br><br> 用<strong>垃圾桶</strong>把「目前」不需要的部分處理掉。 - 2_3_more_cutters: "做得好! 現在,再放<strong>2個切割機</strong>來加速這個緩慢的生產線!<br><br> - PS: 使用<strong>0-9快捷鍵</strong>可以更快選取建築 !" + 2_3_more_cutters: "做得好! 現在,再放<strong>2個切割機</strong>來加速這個緩慢的生產線!<br><br> PS: + 使用<strong>0-9快捷鍵</strong>可以更快選取建築 !" 3_1_rectangles: "現在來開採一些方形吧!<strong>蓋4座開採機</strong>,把形狀收集到基地。<br><br> PS: 選擇輸送帶,按住<strong>SHIFT</strong>並拖曳滑鼠可以計畫輸送帶位置!" - 21_1_place_quad_painter: 放置一個<strong>切割機(四分)</strong>並取得一些 + 21_1_place_quad_painter: 放置一個<strong>上色機(四向)</strong>並取得一些 <strong>圓形</strong>、<strong>白色</strong>和<strong>紅色</strong>! - 21_2_switch_to_wires: 按<strong>E</strong>切換到電路層<br><br> - 然後將上色機的<strong>四個輸入端</strong>用電線<strong>連接</strong>。 + 21_2_switch_to_wires: Switch to the wires layer by pressing + <strong>E</strong>!<br><br> Then <strong>connect all four + inputs</strong> of the painter with cables! 21_3_place_button: 太棒了!現在放置一個<strong>開關</strong>並將之與電線連接。 - 21_4_press_button: "按下開關使之<strong>輸出真值</strong>並啟動上色機。<br><br> - PS: 你不用連接所有的輸入端,試試只連接兩個。" + 21_4_press_button: "按下開關使之<strong>輸出真值</strong>並啟動上色機。<br><br> PS: + 你不用連接所有的輸入端,試試只連接兩個。" colors: red: 紅 green: 綠 blue: 藍 yellow: 黃 - purple: 紫 + purple: 洋紅(紫) cyan: 青 white: 白 uncolored: 無顏色 @@ -295,7 +349,7 @@ ingame: shapeViewer: title: 層 empty: 空 - copyKey: 複製鍵 + copyKey: 複製圖形代碼 connectedMiners: one_miner: 1 個開採機 n_miners: <amount> 個開採機 @@ -314,9 +368,6 @@ ingame: buildings: title: 18 個新建築 desc: 邁向完全自動化! - savegames: - title: ∞ 個存檔 - desc: 隨心所欲! upgrades: title: 20 個等級 desc: 試玩版只有 5 個。 @@ -332,9 +383,53 @@ ingame: support: title: 支持我 desc: 遊戲使我利用閒暇時間做的! + achievements: + title: Achievements + desc: Hunt them all! + puzzleEditorSettings: + zoneTitle: Zone + zoneWidth: Width + zoneHeight: Height + trimZone: Trim + clearItems: Clear Items + share: Share + report: Report + clearBuildings: Clear Buildings + resetPuzzle: Reset Puzzle + puzzleEditorControls: + title: Puzzle Creator + instructions: + - 1. Place <strong>Constant Producers</strong> to provide shapes and + colors to the player + - 2. Build one or more shapes you want the player to build later and + deliver it to one or more <strong>Goal Acceptors</strong> + - 3. Once a Goal Acceptor receives a shape for a certain amount of + time, it <strong>saves it as a goal</strong> that the player must + produce later (Indicated by the <strong>green badge</strong>). + - 4. Click the <strong>lock button</strong> on a building to disable + it. + - 5. Once you click review, your puzzle will be validated and you + can publish it. + - 6. Upon release, <strong>all buildings will be removed</strong> + except for the Producers and Goal Acceptors - That's the part that + the player is supposed to figure out for themselves, after all :) + puzzleCompletion: + title: Puzzle Completed! + titleLike: "Click the heart if you liked the puzzle:" + titleRating: How difficult did you find the puzzle? + titleRatingDesc: Your rating will help me to make you better suggestions in the future + continueBtn: Keep Playing + menuBtn: Menu + nextPuzzle: Next Puzzle + puzzleMetadata: + author: Author + shortKey: Short Key + rating: Difficulty score + averageDuration: Avg. Duration + completionRate: Completion rate shopUpgrades: belt: - name: 傳送帶、平衡機、隧道 + name: 輸送帶、平衡機、隧道 description: 效率 <currentMult>倍 → <newMult>倍 miner: name: 開採 @@ -348,28 +443,28 @@ shopUpgrades: buildings: belt: default: - name: 傳送帶 - description: 運送物品,按住並拖動來放置多個。 + name: 輸送帶 + description: 運送物品,按住並拖曳來放置多個。 miner: default: name: 開採機 - description: 在圖形或者顏色上放置來開採他們。 + description: 在圖形礦脈或者顏色礦脈上放置開採機來開採。 chainable: name: 鏈式開採機 - description: 在圖形或者顏色上放置來開採他們。可以被鏈接在一起。 + description: 在圖形礦脈或者顏色礦脈上放置開採機來開採。 underground_belt: default: name: 隧道 - description: 可以從其他傳送帶或建築底下方運送物品。 + description: 可以從其他輸送帶或建築底下方運送物品。 tier2: - name: 貳級隧道 - description: 可以從其他傳送帶或建築底下方運送物品。 + name: 二級隧道 + description: 可以從其他輸送帶或建築底下方運送物品。 cutter: default: name: 切割機 description: 將圖形從上到下切開並輸出。 <strong>如果你只需要其中一半,記得把另一半銷毀掉,否則切割機會停止運作! </strong> quad: - name: 切割機(四分) + name: 四分切割機 description: 將輸入的圖形切成四塊。 <strong>如果你只需要其中一塊,記得把其他的銷毀掉,否則切割機會停止運作! </strong> rotater: default: @@ -379,33 +474,34 @@ buildings: name: 旋轉機(逆時針) description: 將圖形逆時針旋轉90度。 rotate180: - name: 旋轉機 (180度) + name: 旋轉機(180度) description: 將圖形旋轉180度。 stacker: default: - name: 混合機 - description: 將輸入的圖形拼貼在一起。如果不能被直接拼貼,右邊的圖形會被疊在左邊的圖形上面. + name: 圖形拼貼機 + description: 將輸入的圖形拼貼在一起。如果不能在同一圖層直接拼貼,右邊的圖形會被堆疊在左邊的圖形上面. mixer: default: name: 混色機 - description: 將兩個顏色加在一起。 + description: Mixes two colors using additive blending. painter: default: name: 上色機 - description: 將整個圖形塗上輸入的顏色。 + description: 將整個圖形塗上輸入的顏料。 double: - name: 上色機(雙倍) - description: 同時為兩個輸入的圖形上色,每次上色只消耗一份顏色塗料。 + name: 雙倍上色機 + description: 同時為兩個輸入的圖形上色,每次上色只消耗一份顏料。 quad: - name: 上色機(四向) - description: 分別為圖形的四個部分上色。 只有 <strong>truthy signal</strong> 的格子會被上色。 + name: 四分上色機 + description: 分別為圖形的四個部分上色。 只有從 <strong>有「真」訊號輸入</strong> + 的顏料輸入端輸入的顏料會用來為相對的四分位上色。 mirrored: name: 上色機 - description: 將整個圖形塗上輸入的顏色。 + description: 將整個圖形塗上輸入的顏料。 trash: default: name: 垃圾桶 - description: 從所有四個方向上輸入物品並永遠銷毀它們。 + description: 從所有從四個方向輸入的物品銷毀。 hub: deliver: 交付 toUnlock: 來解鎖 @@ -413,96 +509,96 @@ buildings: endOfDemo: 試玩結束 wire: default: - name: 能量電線 - description: 傳輸能量。 + name: 電線 + description: 傳輸訊號,訊號可以是圖形,顏料或布林值(0或1)。 不同顏色的電線無法互相連接。 second: name: 電線 - description: 傳輸訊號,訊號可以是物件,顏色或布林值(0或1)。 不同顏色的電線無法互相連接。 + description: 傳輸訊號,訊號可以是圖形,顏料或布林值(0或1)。 不同顏色的電線無法互相連接。 balancer: default: name: 平衡機 - description: 多功能——將所有輸入平均分配到所有輸出。 + description: 多功能 —— 將單一輸入平均分配到所有輸出;及將多個輸入集合到一個輸出。 merger: name: 合流機(右) - description: 將兩個傳送帶整合成一個。 + description: 將兩條輸送帶(底部和右側)整合成一條(頂部)。 merger-inverse: name: 合流機(左) - description: 將兩個傳送帶整合成一個。 + description: 將兩條輸送帶(底部和左側)整合成一條(頂部)。 splitter: name: 分流機(右) - description: 將單個傳送帶分流成兩個。 + description: 將底部的輸送帶輸入分流成兩個輸出(頂部和右側)。 splitter-inverse: name: 分流機(左) - description: 將單個傳送帶分流成兩個。 + description: 將底部的輸送帶輸入分流成兩個輸出(頂部和左側)。 storage: default: name: 倉庫 - description: 儲存多餘的物品,有一定儲存上限。優先從左側輸出,可以被用來作為溢流門。 + description: 儲存多餘的物品,有一定儲存上限。優先從左側輸出,右側輸出可以被用來作為溢流門。 wire_tunnel: default: name: 電線交叉 description: 電線彼此交叉但不互相連接。 constant_signal: default: - name: 固定信號 - description: 輸出固定信號,可以是形狀、顏色或布林值(1或0)。 + name: 固定訊號 + description: 輸出固定訊號,可以是形狀、顏料或布林值(1或0)。 lever: default: name: 信號切換器 - description: 切換電路層的輸出布林值(1或0),舉例來說,它可以操控物件分類器。 + description: 切換「1(真值)」或「0(假值)」輸出,舉例來說,它可以操控物件分類器。 logic_gate: default: name: AND 邏輯閘 - description: 當輸入均為「真」時,輸出才為1。 (「真」值代表:形狀正確、顏色正確或布林值為1) + description: 當輸入均為「真」訊號時,輸出「1(真值)」。(「真」訊號代表:形狀訊號、顏色訊號或布林值為1) not: name: NOT 邏輯閘 - description: 當輸入之ㄧ為「假」時,輸出才為1。 (「假」值代表:形狀不正確、顏色不正確或布林值為0) + description: 當輸入為「假」訊號時,輸出「1(真值)」。(「假」訊號代表:沒有訊號或布林值為0) xor: name: XOR 邏輯閘 - description: 當輸入均為「假」時,輸出才為1。 (「假」值代表:形狀不正確、顏色不正確或布林值為0) + description: 當輸入為一個「真」訊號和一個「假」訊號時,輸出「1(真值)」。(「假」訊號代表:沒有訊號或布林值為0) or: name: OR 邏輯閘 - description: 當輸入之ㄧ為「真」時,輸出才為1。 (「真」值代表:形狀正確、顏色正確或布林值為1) + description: 當其中一個輸入為「真」訊號時,輸出「1(真值)」。(「真」訊號代表:形狀訊號、顏色訊號或布林值為1) transistor: default: name: 電晶體 description: 如果基極(側面)的輸入訊號為「真」,則把射極(底部)輸入的真假值複製到集極(頂部)的輸出。 - (「真」值代表:形狀正確、顏色正確或布林值為1) + (「真」訊號代表:形狀訊號、顏色訊號或布林值為1) mirrored: name: 電晶體 description: 如果基極(側面)的輸入訊號為「真」,則把射極(底部)輸入的真假值複製到集極(頂部)的輸出。 - (「真」值代表:形狀正確、顏色正確或布林值為1) + (「真」訊號代表:形狀訊號、顏色訊號或布林值為1) filter: default: name: 物件分類器 - description: 它會依據電路層收到的訊號分類,符合的會到上方,不符合的到右方。 + description: 它會依據電路層收到的訊號,從分類器底部輸入的物件如符合輸入信號的會輸出到頂部,不符合的會從右方(交叉標記)排出。 它也可以被布林值訊號控制。 display: default: name: 顯示器 - description: 連接一個訊號到顯示器上顯示,訊號可以是形狀、物件或布林值。 + description: 連接一個訊號到顯示器上顯示,訊號可以是形狀、顏料或布林值。 reader: default: - name: 傳送帶讀取機 - description: 它會讀取輸送帶的平均流量,(解鎖後)在電路層輸出最後讀取的物件。 + name: 輸送帶讀取機 + description: 它會讀取輸送帶的平均流量,(電路層解鎖後)在電路層輸出最後讀取的物件。 analyzer: default: - name: 形狀分析機 - description: 分析最底層右上角的圖形並輸出他的形狀跟顏色。 + name: 圖形分析機 + description: 分析輸入的圖形訊號中最底層右上角的圖形並輸出其形狀和顏色。 comparator: default: name: 比較機 - description: 當兩個輸入訊號完全相等時,輸出布林值「1」。它可以比較形狀、物件或布林值。 + description: 當兩個輸入訊號完全相等時,輸出布林值「1(真值)」。它可以比較形狀、物件或布林值。 virtual_processor: default: name: 虛擬切割機 - description: 虛擬地將圖形從上到下切開並輸出。 + description: 虛擬地將圖形訊號從上到下切開。 rotater: name: 虛擬旋轉機 - description: 虛擬地將圖形順時針或逆時針旋轉。 + description: 虛擬地將圖形訊號順時針旋轉。 unstacker: name: 虛擬提取機 - description: 虛擬地提取最上層的圖形到右方輸出,剩下的圖形由左方輸出。 + description: 虛擬地提取圖形訊號最上層的圖形到右方輸出,剩下的圖形由左方輸出。 stacker: name: 虛擬堆疊機 description: 虛擬地將輸入的圖形拼貼在一起。如果不能被直接拼貼,右邊的圖形會被疊在左邊的圖形上面。 @@ -512,133 +608,141 @@ buildings: item_producer: default: name: 物品製造機 - description: 沙盒模式專有,將電路層的輸入轉化成一般層的輸出。 + description: 沙盒模式專有,將電路層的輸入轉化成實體層的輸出。 + constant_producer: + default: + name: 恆定生產機 + description: 持續輸出圖形或顏料。 + goal_acceptor: + default: + name: 目標接收機 + description: 交付接收機所示圖形以完成目標。 + block: + default: + name: 障礙物 + description: 用來禁止在障礙物處放置物件。 storyRewards: reward_cutter_and_trash: title: 切割圖形 - desc: <strong>切割機</strong>已解鎖。不論切割機的方向,它都會把圖形<strong>垂直地</strong>切成兩半。 - <br><br>記得把不需要的部分處理掉,否則這個這個建築會<strong>停止運作</strong>。 + desc: <strong>切割機</strong>已解鎖!不論切割機的方向,它都會把圖形<strong>垂直地</strong>切成兩半。<br><br> + 記得把不需要的部分處理掉,否則切割機會<strong>因為堵塞而停止運作</strong>。 為此我給你準備了<strong>垃圾桶</strong>,它會把所有放進去的物品銷毀掉。 reward_rotater: title: 順時針旋轉 - desc: <strong>順時針旋轉機</strong>已解鎖。它會順時針旋轉輸入的圖形90度。 + desc: <strong>順時針旋轉機</strong>已解鎖! 它會順時針旋轉輸入的圖形90度。 reward_painter: title: 上色 - desc: <strong>上色機</strong>已解鎖。開採一些顏色,用上色機把顏色和圖形混合,就可以為圖形著色。<br><br>備註:如果你是色盲,設置中有<strong>色盲模式</strong>可以選。 + desc: <strong>上色機</strong>已解鎖! + 開採一些顏色,用上色機把顏色和圖形混合,就可以為圖形著色。<br><br>備註:如果你是色盲,設定中有<strong>色盲模式</strong>可以選。 reward_mixer: title: 混色 - desc: <strong>混色器</strong>已解鎖-在此建築物中使用<strong>附加混合</strong>結合兩種顏色! + desc: <strong>混色器</strong>已解鎖! 在此建築物中使用<strong>附加混合</strong>結合兩種顏色! reward_stacker: - title: 混合 - desc: <strong>混合機</strong>已解鎖。如果沒有重疊的部分,混合機會嘗試把兩個輸入的圖形<strong>拼貼</strong>在一起。如果有重疊的部分,右邊的輸入會被<strong>疊</strong>到左邊的輸入上方! + title: 拼貼 + desc: <strong>圖形拼貼機</strong>已解鎖! + 如果沒有重疊的部分,圖形拼貼機會嘗試把兩個輸入的圖形<strong>拼貼</strong>在一起。如果有重疊的部分,右邊的輸入會被<strong>疊</strong>到左邊的輸入上方! reward_splitter: title: 分流 - desc: <strong>分流機</strong>(<strong>平衡機</strong>的變體)已解鎖。 - - 它將單個傳送帶分流成兩個。 + desc: |- + <strong>分流機</strong>(<strong>平衡機</strong>的變體)已解鎖! + - 它將單個輸送帶分流成兩個。 reward_tunnel: title: 隧道 - desc: <strong>隧道</strong>已解鎖。你現在可以從其他傳送帶或建築底下運送物品了! + desc: <strong>隧道</strong>已解鎖! 你現在可以在其他輸送帶或建築底下運送物品了! reward_rotater_ccw: title: 逆時針旋轉 - desc: <strong>逆時針旋轉機</strong>已解鎖。它會逆時針旋轉輸入的圖形90度。 - 逆時針旋轉機是順時針旋轉機的變體。選擇「順時針旋轉機」並<strong>按「T」來切換變體</strong>就能創建。 + desc: <strong>逆時針旋轉機</strong>已解鎖! 它會逆時針旋轉輸入的圖形90度。 + 逆時針旋轉機是順時針旋轉機的變體。選擇「順時針旋轉機」並<strong>按「T」來切換變體</strong>就能使用。 reward_miner_chainable: title: 鏈式開採 - desc: "<strong>鏈式開採機</strong>變體已解鎖。它是開採機的一個變體。 - 它可以將開採出來的資源<strong>傳遞</strong>給其他的開採機,使得資源提取更加高效!<br><br> PS: - 工具列中舊的開採機已被取代。" + desc: <strong>鏈式開採機</strong>已解鎖! 它是開採機的一個變體。 + 它可以將開採出來的資源<strong>傳遞</strong>給其他的開採機,使得資源提取更加高效!<br><br> + 備註:工具列中舊的開採機已被取代。 reward_underground_belt_tier_2: - title: 貳級隧道 - desc: <strong>貳級隧道</strong>變體已解鎖。這個隧道有<strong>更長的傳輸距離</strong>。你還可以混用不同的隧道變體! + title: 二級隧道 + desc: <strong>二級隧道</strong>已解鎖! 這個隧道變體有<strong>更長的傳輸距離</strong>。你還可以混用不同的隧道變體! reward_cutter_quad: title: 四分切割 desc: 您已解鎖了<strong>切割機</strong>的變體:四分切割機。 - 它允許您將形狀直接切割為<strong>四個部分</strong>,而不是兩個! + 它允許您將直接切割出形狀的<strong>四個邊角</strong>,而不是分成兩半! reward_painter_double: title: 雙倍上色 desc: 您已經解鎖了<strong>上色機</strong>的變體:雙倍上色機。 它的運作方式跟上色機類似,但一次能處理<strong>兩個形狀</strong>,而且只消耗一種顏色而不是兩種顏色! reward_storage: title: 倉庫 - desc: <strong>倉庫</strong> 已解鎖: - 可以儲存多餘的物品,有一定儲存上限。<br><br>優先從左側輸出,可以被用來作為<strong>溢流門</strong>。 + desc: <strong>倉庫</strong> 已解鎖: 它可以儲存多餘的物品,但有一定儲存上限。<br><br> + 物品優先從左側輸出,它也可以被用來作為<strong>溢流門</strong>。 reward_freeplay: title: 自由模式 desc: 你做到了!你解鎖了<strong>自由模式</strong>!現在圖形將會是<strong>隨機</strong>生成的!<br><br> - 從現在開始,基地會要求<strong>流量</strong>下限,因此我強烈建議你建造全自動化的生產線。<br><br> - 基地會在電路層輸出他需要的形狀,你只需要分析這些訊號,然後依照需求自動調整你的工廠。 + 從現在開始,基地會有<strong>交付速率下限</strong>的要求,因此我強烈建議你建造全自動化的生產線。<br><br> + 基地會在電路層輸出它需要的形狀,你只需要分析這些訊號,然後依照需求自動調整你的工廠。 reward_blueprints: title: 藍圖 - desc: 你現在可以<strong>複製貼上</strong>你的工廠某些區域。 - 選擇一個區域(按住 CTRL 並拖曳滑鼠),再按「C」來複製。<br><br> - 貼上<strong>不是免費的</strong>,你必須製造(剛才生成的)<strong>藍圖形狀</strong>來給付。 + desc: 你現在可以<strong>複製貼上</strong>你的工廠某些區域。 選擇一個區域(按住 CTRL + 並拖曳滑鼠),再按「C」來複製。<br><br> + 貼上藍圖<strong>不是免費的</strong>,你必須製造(剛才生成的)<strong>藍圖形狀</strong>來給付。 no_reward: title: 下一關 - desc: "這一關沒有獎勵,但是下一關有! <br><br> PS: - 你生產過的<strong>所有</strong>圖形都會被用來<strong>升級建築</strong>。" + desc: 這一關沒有獎勵,但是下一關會有! <br><br> + 備註:你生產過的<strong>所有</strong>圖形都會被用來<strong>升級建築</strong>。 no_reward_freeplay: title: 下一關 desc: 恭喜你!另外,我們已經計劃在單機版中加入更多內容! reward_balancer: title: 平衡物流 - desc: <strong>平衡機</strong>已解鎖。在大型工廠中,平衡機負責<strong>合流或分流</strong>多個傳送帶上的物品。 + desc: <strong>平衡機</strong>已解鎖! 在大型工廠中,平衡機負責<strong>合流或分流</strong>多個輸送帶上的物品。 reward_merger: title: 合流 - desc: <strong>合流機</strong>(<strong>平衡機</strong>的變體)已解鎖。 - - 它會將兩個傳送帶整合成一個。 + desc: |- + <strong>合流機</strong>(<strong>平衡機</strong>的變體)已解鎖! + - 它會將兩個輸送帶整合成一個。 reward_belt_reader: title: 讀取輸送帶 - desc: <strong>輸送帶讀取機</strong>已解鎖。 - 它會讀取輸送帶的流量。<br><br> - 當你解鎖電路層時,它會變得超有用! + desc: <strong>輸送帶讀取機</strong>已解鎖! 它會讀取輸送帶的流量。<br><br> 當你解鎖電路層時,它會變得超有用! reward_rotater_180: title: 180度旋轉 - desc: 180度<strong>旋轉機</strong>已解鎖。 - - 它可以180度旋轉物件(驚喜!:D) + desc: <strong>180度旋轉機</strong>已解鎖! - 它可以180度旋轉物件(驚喜!:D) reward_display: title: 顯示器 - desc: "<strong>顯示器</strong> 已解鎖。 - - 在電路層上連接一個訊號到顯示器上顯示!<br><br> - PS: 你有注意到輸送帶讀取機跟倉庫都會輸出它們最後讀取的物件嗎? - 試試看在顯示器上顯示它吧!" + desc: <strong>顯示器</strong> 已解鎖! - 在電路層上連接一個訊號到顯示器上顯示!<br><br> + 備註:你有注意到輸送帶讀取機跟倉庫都會輸出它們最後讀取的物件嗎? 試試看在顯示器上顯示它吧!" reward_constant_signal: title: 固定信號 - desc: 電路層上的<strong>固定信號</strong>已解鎖。 + desc: 電路層上的<strong>固定信號</strong>已解鎖! 舉例,將<strong>物件分類器</strong>連上固定信號會很有用。<br><br> 固定信號可以輸出<strong>形狀</strong>、<strong>顏色</strong>或是 <strong>布林值</strong>(1或0)。 reward_logic_gates: title: 邏輯閘 - desc: <strong>邏輯閘</strong>已解鎖。 - 你可以覺得無所謂,但其實邏輯閘其實超酷的!<br><br> - 有了這些邏輯閘,你可以運算 AND, OR, XOR 與 NOT。<br><br> - 錦上添花,我再送你<strong>電晶體</strong>! + desc: <strong>邏輯閘</strong>已解鎖!你可能覺得無所謂,但其實邏輯閘其實超酷的!<br><br> 有了這些邏輯閘,你可以運算 AND, + OR, XOR 與 NOT 邏輯。<br><br> 錦上添花,我再送你<strong>電晶體</strong>! reward_virtual_processing: title: 虛擬操作 - desc: <strong>虛擬操作</strong>!<br><br>已解鎖。很多新建築有虛擬版,你可以模擬切割機、旋轉機、推疊機還有更多電路層上的建築。 - 繼續遊玩的你現在有三個選項:<br><br> - - 蓋一個自動生成任何基地要求圖形的<strong>自動機</strong>(推薦!)。<br><br> - - 利用電路層蓋一些很酷建築<br><br> - - 繼續用原本的方式破關。<br><br> - 不論你的選擇是什麼,祝你玩得開心! + desc: I just gave a whole bunch of new buildings which allow you to + <strong>simulate the processing of shapes</strong>!<br><br> You can + now simulate a cutter, rotator, stacker and more on the wires layer! + With this you now have three options to continue the game:<br><br> - + Build an <strong>automated machine</strong> to create any possible + shape requested by the HUB (I recommend to try it!).<br><br> - Build + something cool with wires.<br><br> - Continue to play + normally.<br><br> Whatever you choose, remember to have fun! reward_wires_painter_and_levers: title: 電路層 & 四角上色機 - desc: "You just unlocked the <strong>電路層</strong>已解鎖。 - 它是一個獨立於一般層之外的存在,將帶給你更多玩法!<br><br> - 首先,我為你解鎖<strong>四角上色機</strong>。 - 想要上色的角落記得在電路層通電!<br><br> + desc: <strong>電路層</strong>已解鎖! 它是一個獨立於實體層之外的存在,將帶給你更多玩法!<br><br> + 首先,我為你解鎖<strong>四角上色機</strong>。記得先在電路層為想要上色的角落通電!<br><br> 按<strong>E</strong>切換至電路層。<br><br> - PS: 設定裡<strong>開啟提示</strong>來啟動教程!" + 備註:設定裡<strong>開啟提示</strong>來啟動教學!" reward_filter: title: 物件分類器 - desc: <strong>物件分類器</strong>已解鎖。 - 它會依據電路層收到的訊號決定輸出端(右方或上方)。<br><br> - 你也可以送一個固定訊號(1或0)來徹底啟用或不啟用此機器。 + desc: <strong>物件分類器</strong>已解鎖! 它會依據電路層收到的訊號決定輸出端(右方或上方)。<br><br> + 你也可以輸入布林值(1或0)來徹底啟用或不啟用此機器。 reward_demo_end: title: 試玩結束 desc: 你已破關試玩版! settings: - title: 設置 + title: 設定 categories: general: 一般 userInterface: 使用者介面(UI) @@ -648,11 +752,11 @@ settings: dev: 開發版本 staging: 預覽版本 prod: 正式版本 - buildDate: 於<at-date>創建 + buildDate: 於<at-date>建立 labels: uiScale: - title: 用戶界面大小 - description: 改變用戶界面大小。用戶界面會隨著設備分辨率縮放,這個設置決定縮放比例。 + title: 顯示介面大小 + description: 改變顯示介面大小。顯示介面會隨著設備解析度縮放,這個設定決定縮放比例。 scales: super_small: 最小 small: 較小 @@ -661,7 +765,7 @@ settings: huge: 最大 scrollWheelSensitivity: title: 縮放靈敏度 - description: 改變縮放靈敏度(鼠標滾輪或者觸控板)。 + description: 改變縮放靈敏度(滑鼠滾輪或者軌跡板)。 sensitivity: super_slow: 最低 slow: 較低 @@ -687,17 +791,18 @@ settings: dark: 深色 light: 淺色 refreshRate: - title: 模擬頻率、刷新頻率 - description: 如果你的顯示器是144hz的,請在這裡更改刷新頻率,這樣遊戲可以正確地根據你的螢幕進行模擬。但是如果你的電腦性能不佳,提高刷新頻率可能降低幀數。 + title: 模擬頻率、更新頻率 + description: 如果你的顯示器是 144Hz + 的,請在這裡更改更新頻率,這樣遊戲可以正確地根據你的螢幕進行模擬。但是如果你的電腦效能不佳,提高更新頻率可能降低幀數。 alwaysMultiplace: title: 多重放置 - description: 開啟這個選項之後放下建築將不會取消建築選擇。等同於一直按下SHIFT鍵。 + description: 開啟這個選項之後放下建築將不會取消建築選擇。等同於一直按下 SHIFT 鍵。 offerHints: - title: 提示與教程 - description: 是否顯示提示、教程以及一些其他的幫助理解遊戲的UI元素。 + title: 提示與教學 + description: 是否顯示提示、教學以及一些其他的幫助理解遊戲的介面元素。 movementSpeed: title: 移動速度 - description: 改變攝像頭移動速度 + description: 改變視角移動速度 speeds: super_slow: 最慢 slow: 較慢 @@ -706,35 +811,35 @@ settings: super_fast: 非常快 extremely_fast: 最快 enableTunnelSmartplace: - title: 智能隧道放置 - description: 啟用後,放置隧道時會將多餘的傳送帶移除。 此外,拖動隧道可以快速鋪設隧道,以及移除不必要的隧道。 + title: 智慧隧道放置 + description: 啟用後,放置隧道時會將多餘的輸送帶移除。此外,拖曳隧道可以快速鋪設隧道,以及移除不必要的隧道。 vignette: title: 暈映 - description: 啟用暈映,將屏幕角落裡的顏色變深,更容易閱讀文字。 + description: 啟用暈映,將螢幕角落裡的顏色變深,更容易閱讀文字。 autosaveInterval: - title: 自動刷新時間 - description: 控制遊戲自動刷新的頻率。 您也可以禁用它。 + title: 自動存檔時間 + description: 控制遊戲自動存檔的頻率。您也可以停用它。 intervals: - one_minute: 1分鐘 - two_minutes: 2分鐘 - five_minutes: 5分鐘 - ten_minutes: 10分鐘 - twenty_minutes: 20分鐘 + one_minute: 1 分鐘 + two_minutes: 2 分鐘 + five_minutes: 5 分鐘 + ten_minutes: 10 分鐘 + twenty_minutes: 20 分鐘 disabled: 停用 compactBuildingInfo: - title: 省略建築信息 + title: 省略建築資訊 description: |- - 通過顯示建築物的比率來縮短建築物的資訊框。 否則 + 通過顯示建築物的比例來縮短建築物的資訊框。否則 顯示所有說明+圖像。 disableCutDeleteWarnings: title: 停用剪下/刪除的警告 description: 剪下/刪除超過100幢建築物時不顯示警告。 enableColorBlindHelper: title: 色盲模式 - description: 如果您是色盲者,啟用了這設定,就可以玩遊戲了。 + description: 如果您是色盲者,啟用了這設定就可以玩遊戲了。 rotationByBuilding: title: 依建築類型旋轉 - description: 每個建築類型,將會分別記住您最後一次使用的旋轉方向。 如果您常常切換不同類型的建築,這樣可能會更方便。 + description: 每個建築類型,將會分別記住您最後一次使用的旋轉方向。如果您常常切換不同類型的建築,這樣可能會更方便。 soundVolume: title: 音效 description: 音效設定 @@ -749,11 +854,10 @@ settings: description: 取消網格可以增加效能,畫面也會比較乾淨! clearCursorOnDeleteWhilePlacing: title: 按右鍵淨空游標 - description: 預設是開啟的,按下右鍵時,清空游標上顯示的準備要蓋建築。 - 如果關閉此選項,你可以一邊蓋工廠一邊刪除不要的建築。 + description: 預設是開啟的,按下右鍵時,清空游標上顯示的準備要蓋建築。 如果關閉此選項,你可以一邊蓋工廠一邊刪除不要的建築。 lowQualityTextures: - title: 低畫質(醜) - description: 用低畫質節省效能。遊戲畫面會變的很醜! + title: 低畫質(簡陋) + description: 用低畫質節省效能。遊戲畫面會變的很簡陋! displayChunkBorders: title: 顯示分區邊界 description: 遊戲是由許多 16x16 的分區組成,啟用這個選項會顯示分區的邊界。 @@ -762,8 +866,7 @@ settings: description: 預設是開啟的,當滴管移動到資源叢上方時,選擇開採機。 simplifiedBelts: title: 簡化輸送帶(醜) - description: 為節省效能,不 render 輸送帶。 - 除非有必要節省效能,不然我是不建議使用。 + description: 為節省效能,不渲染輸送帶。 除非有必要節省效能,不然我是不建議使用。 enableMousePan: title: 允許用滑鼠移動畫面 description: 當滑鼠靠近畫面邊緣時,會移動地圖。移動速度取決於「移動速度」設定。 @@ -773,11 +876,15 @@ settings: mapResourcesScale: title: 地圖資源標示大小 description: 控制地圖資源標示大小(縮小俯瞰時)。 + shapeTooltipAlwaysOn: + title: 常時顯示建築物輸出提示 + description: 選擇是否常時在焦點移到建築物時顯示它的上一個輸出物件,而不需按「ALT」鍵才會顯示。 rangeSliderPercentage: <amount> % + tickrateHz: <amount> Hz keybindings: - title: 按鍵設置 - hint: 提示:使用 CTRL、SHIFT、ALT ! 這些建在放置建築時有不同的效果。 - resetKeybindings: 重置按鍵設置 + title: 按鍵設定 + hint: 提示:使用 CTRL、SHIFT、ALT ! 這些建在放置建築時有不同的效果。 + resetKeybindings: 重置按鍵設定 categoryLabels: general: 通用 ingame: 遊戲 @@ -789,26 +896,26 @@ keybindings: mappings: confirm: 確認 back: 返回 - mapMoveUp: 上 - mapMoveRight: 右 - mapMoveDown: 下 - mapMoveLeft: 左 + mapMoveUp: 向上移動 + mapMoveRight: 向右移動 + mapMoveDown: 向下移動 + mapMoveLeft: 向左移動 centerMap: 回到基地 mapZoomIn: 放大 mapZoomOut: 縮小 - createMarker: 創建地圖標記 + createMarker: 建立地圖標記 menuOpenShop: 升級選單 menuOpenStats: 統計選單 toggleHud: 開關基地 - toggleFPSInfo: 開關幀數與調試信息 - belt: 傳送帶 + toggleFPSInfo: 開關幀數與除錯信息 + belt: 輸送帶 underground_belt: 隧道 miner: 開採機 cutter: 切割機 - rotater: 旋轉機 - stacker: 混合機 + rotater: 虛擬旋轉機 + stacker: 虛擬堆疊機 mixer: 混色機 - painter: 上色機 + painter: 虛擬上色機 trash: 垃圾桶 rotateWhilePlacing: 順時針旋轉 rotateInverseModifier: "修飾鍵: 改為逆時針旋轉" @@ -820,32 +927,41 @@ keybindings: massSelectCopy: 複製 placementDisableAutoOrientation: 取消自動定向 placeMultiple: 繼續放置 - placeInverse: 反向放置傳送帶 + placeInverse: 反向放置輸送帶 pasteLastBlueprint: 貼上前一張藍圖 massSelectCut: 剪切 exportScreenshot: 匯出截圖 mapMoveFaster: 快速移動 - lockBeltDirection: 啟用傳送帶規劃 + lockBeltDirection: 啟用輸送帶規劃 switchDirectionLockSide: 規劃器:換邊 pipette: 滴管 menuClose: 關閉選單 - switchLayers: 更換層 + switchLayers: 切換實體層/電路層 wire: 電線 balancer: 平衡機 storage: 倉庫 - constant_signal: 固定信號 + constant_signal: 固定訊號 logic_gate: 邏輯閘 - lever: 開關(一般) - filter: 過濾器 + lever: 信號切換器 + filter: 物件分類器 wire_tunnel: 電線交叉 - display: Display + display: 顯示器 reader: 輸送帶讀取機 - virtual_processor: 虛擬切割機 + virtual_processor: 虛擬處理 transistor: 電晶體 - analyzer: 形狀分析機 - comparator: 比對機 - item_producer: 物品生產機(沙盒模式) - copyWireValue: "電路:複製數值於游標底下" + analyzer: 圖形分析機 + comparator: 比較機 + item_producer: 物品生產機(沙盒模式) + copyWireValue: 電路:複製數值於游標底下 + rotateToUp: "轉動: 向上" + rotateToDown: "轉動: 向下" + rotateToRight: "轉動: 向右" + rotateToLeft: "轉動: 向左" + constant_producer: 恆定生產機 + goal_acceptor: 目標接收機 + block: 障礙物 + massSelectClear: 清空輸送帶 + showShapeTooltip: 顯示建築物輸出提示 about: title: 關於遊戲 body: >- @@ -866,63 +982,148 @@ demo: restoringGames: 恢復存檔 importingGames: 匯入存檔 oneGameLimit: 最多一個存檔 - customizeKeybindings: 按鍵設置 + customizeKeybindings: 按鍵設定 exportingBase: 匯出工廠截圖 settingNotAvailable: 在試玩版中不可用。 tips: - - 基地接受任何輸入,不只是當前要求的圖形! - - 盡量讓工廠模組化,會有回報的! - - 建築不要距離基地太近,否則容易混亂! + - 基地接受任何輸入,不只是當下要求的圖形! + - 盡量讓工廠模組化,會有回報的! + - 建築不要距離基地太近,否則容易混亂! - 如果堆疊不如預期,嘗試將輸入端互換。 - 輸送帶的方向可以按 <b>R</b> 更換。 - 按住 <b>CTRL</b> 來防止輸送帶自動轉向。 - 同等級的生產比例會是一樣的。 - 串聯比並聯更有效率。 - - 遊戲後期可以解鎖更多建築變體! + - 遊戲後期可以解鎖更多建築變體! - 玩家可以按 <b>T</b> 來選擇不同變體。 - - 對稱是關鍵! + - 對稱是關鍵! - 不同等級的隧道可以相互交織。 - - 盡量讓工廠保持緊密,會有回報的! + - 盡量讓工廠保持緊密,會有回報的! - 上色機有對稱的變體。按 <b>T</b> 來選擇不同變體。 - 正確的建築比例可以將效率最大化。 - 最高級時,五個開採機可填滿一個輸送帶。 - - 別忘記使用隧道! + - 別忘記使用隧道! - 最高效率不一定來自均勻切割。 - 按住 <b>SHIFT</b> 輕鬆規劃長距離輸送帶。 - 不論擺放方向,切割機永遠做垂直切割。 - 白 = 紅 + 綠 + 藍。 - 倉庫優先從左側輸出。 - - 花點時間研究可以重複利用的設計,會有回報的! + - 花點時間研究可以重複利用的設計,會有回報的! - 按住 <b>SHIFT</b> 可以一次放置多個建築。 - 按住 <b>ALT</b> 以反轉輸送帶的放置方向。 - - 效率是關鍵! + - 效率是關鍵! - 離基地越遠得圖形叢越複雜。 - 機器的運作速度有上限,多放幾個增加生產效率。 - 用平衡機讓效率最大化。 - 規劃很重要,盡量別讓輸送帶錯綜複雜。 - - 預先規劃,不然會混亂不堪! + - 預先規劃,不然會混亂不堪! - 不要刪除舊的工廠,解鎖更新能會需要它們。 - - 先試著靠自己破第20關再去尋求幫助。 + - 先試著靠自己破第 20 關再去尋求幫助。 - 不要讓東西複雜化,保持簡單則行的遠。 - 遊戲中有時需要重複利用工廠,設計時記得考量重複利用性。 - 有些圖形地圖上就找的到,不必自行堆疊。 - - 地圖永遠部會自然生成完整的風車圖形。 + - 地圖永遠不會自然生成完整的風車圖形。 - 先上色再切割會比較有效率。 - 有了模組,空間淪為假議題、凡夫俗子的憂思。 - - 創建一個藍圖工廠,這對模組化很有幫助。 + - 建立一個藍圖工廠,這對模組化很有幫助。 - 靠近一點看混色機,你會找到解答。 - 按 <b>CTRL</b> + 點選想選取的區域。 - 離基地太近的建築可能在未來會礙事。 - - 更新目錄的每個圖形旁都有圖釘,點選即可把圖形釘在螢幕上(目標圖形旁)。 - - 混合所有基本色就會得到白色! - - 地圖是無限延展的,別執著,擴張吧! - - Factorio 是我最喜歡的遊戲,非常推薦! + - 更新目錄的每個圖形旁都有圖釘,點選即可把圖形訂選在螢幕上(目標圖形旁)。 + - 混合所有基本色就會得到白色! + - 地圖是無限延展的;別執著於一處,盡情地擴張吧! + - Factorio 是我最喜歡的遊戲,非常推薦! - 四分切割機從右上角順時鐘地輸出圖形的四個區塊。 - 你可以從主畫面下載存檔。 - - 去設定頁看看,有很多有用的按鍵組合! + - 去設定頁看看,有很多有用的按鍵組合! - 有很多東西都可以設定,有空的話去設定頁看看。 - 看不見基地時,基地的標示左側有個小指南針會提醒你它的方位。 - - 清除輸送帶有個方法:複製它再原地貼上。 - - 按 F4 來顯示螢幕的幀數(FPS)與刷新率(Tick Rate)。 + - 清除輸送帶有個方法:複製它再原地貼上。 + - 按 F4 來顯示螢幕的幀數(FPS)與刷新率(Tick Rate)。 - 按 F4 兩次來顯示相機和游標的絕對位置。 - 在已標記的圖形上按左鍵去除標記。 +puzzleMenu: + play: Play + edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + loadPuzzle: Load + reviewPuzzle: Review & Publish + validatingPuzzle: Validating Puzzle + submittingPuzzle: Submitting Puzzle + noPuzzles: There are currently no puzzles in this section. + categories: + levels: Levels + new: New + top-rated: Top Rated + mine: My Puzzles + easy: Easy + hard: Hard + completed: Completed + medium: Medium + official: Official + trending: Trending today + trending-weekly: Trending weekly + categories: Categories + difficulties: By Difficulty + account: My Puzzles + search: Search + validation: + title: Invalid Puzzle + noProducers: Please place a Constant Producer! + noGoalAcceptors: Please place a Goal Acceptor! + goalAcceptorNoItem: One or more Goal Acceptors have not yet assigned an item. + Deliver a shape to them to set a goal. + goalAcceptorRateNotMet: One or more Goal Acceptors are not getting enough items. + Make sure that the indicators are green for all acceptors. + buildingOutOfBounds: One or more buildings are outside of the buildable area. + Either increase the area or remove them. + autoComplete: Your puzzle autocompletes itself! Please make sure your constant + producers are not directly delivering to your goal acceptors. + difficulties: + easy: Easy + medium: Medium + hard: Hard + unknown: Unrated + dlcHint: Purchased the DLC already? Make sure it is activated by right clicking + shapez.io in your library, selecting Properties > DLCs. + search: + action: Search + placeholder: Enter a puzzle or author name + includeCompleted: Include Completed + difficulties: + any: Any Difficulty + easy: Easy + medium: Medium + hard: Hard + durations: + any: Any Duration + short: Short (< 2 min) + medium: Normal + long: Long (> 10 min) +backendErrors: + ratelimit: You are performing your actions too frequent. Please wait a bit. + invalid-api-key: Failed to communicate with the backend, please try to + update/restart the game (Invalid Api Key). + unauthorized: Failed to communicate with the backend, please try to + update/restart the game (Unauthorized). + bad-token: Failed to communicate with the backend, please try to update/restart + the game (Bad Token). + bad-id: Invalid puzzle identifier. + not-found: The given puzzle could not be found. + bad-category: The given category could not be found. + bad-short-key: The given short key is invalid. + profane-title: Your puzzle title contains profane words. + bad-title-too-many-spaces: Your puzzle title is too short. + bad-shape-key-in-emitter: A constant producer has an invalid item. + bad-shape-key-in-goal: A goal acceptor has an invalid item. + no-emitters: Your puzzle does not contain any constant producers. + no-goals: Your puzzle does not contain any goal acceptors. + short-key-already-taken: This short key is already taken, please use another one. + can-not-report-your-own-puzzle: You can not report your own puzzle. + bad-payload: The request contains invalid data. + bad-building-placement: Your puzzle contains invalid placed buildings. + timeout: The request timed out. + too-many-likes-already: The puzzle alreay got too many likes. If you still want + to remove it, please contact support@shapez.io! + no-permission: You do not have the permission to perform this action. diff --git a/version b/version index cb174d58..e1df5de7 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.2.1 \ No newline at end of file +1.4.4 \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 4a7612d0..cdcdd19e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,8980 +1,8883 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" - integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== - dependencies: - browserslist "^4.9.1" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.5.4": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.9.0", "@babel/generator@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" - integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== - dependencies: - "@babel/types" "^7.9.5" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-compilation-targets@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" - integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== - dependencies: - "@babel/compat-data" "^7.8.6" - browserslist "^4.9.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== - -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116" - integrity sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.9.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-block-scoping@^7.4.4", "@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.5.5", "@babel/plugin-transform-classes@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" - integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-destructuring@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" - integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-modules-amd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" - integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" - integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" - integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== - dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" - integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/preset-env@^7.5.4": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f" - integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ== - dependencies: - "@babel/compat-data" "^7.9.0" - "@babel/helper-compilation-targets" "^7.8.7" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.5" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.5" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.9.5" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.0" - "@babel/plugin-transform-modules-systemjs" "^7.9.0" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.9.5" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.5" - browserslist "^4.9.1" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.8.4": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" - integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.5" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" - integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - -"@jimp/bmp@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.6.8.tgz#8abbfd9e26ba17a47fab311059ea9f7dd82005b6" - integrity sha512-uxVgSkI62uAzk5ZazYHEHBehow590WAkLKmDXLzkr/XP/Hv2Fx1T4DKwJ/15IY5ktq5VAhAUWGXTyd8KWFsx7w== - dependencies: - "@jimp/utils" "^0.6.8" - bmp-js "^0.1.0" - core-js "^2.5.7" - -"@jimp/core@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.6.8.tgz#6a41089792516f6e64a5302d12eb562aa7847c7b" - integrity sha512-JOFqBBcSNiDiMZJFr6OJqC6viXj5NVBQISua0eacoYvo4YJtTajOIxC4MqWyUmGrDpRMZBR8QhSsIOwsFrdROA== - dependencies: - "@jimp/utils" "^0.6.8" - any-base "^1.1.0" - buffer "^5.2.0" - core-js "^2.5.7" - exif-parser "^0.1.12" - file-type "^9.0.0" - load-bmfont "^1.3.1" - mkdirp "0.5.1" - phin "^2.9.1" - pixelmatch "^4.0.2" - tinycolor2 "^1.4.1" - -"@jimp/custom@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.6.8.tgz#0476d7b3f5da3121d98895a2e14f2899e602f2b6" - integrity sha512-FrYlzZRVXP2vuVwd7Nc2dlK+iZk4g6IaT1Ib8Z6vU5Kkwlt83FJIPJ2UUFABf3bF5big0wkk8ZUihWxE4Nzdng== - dependencies: - "@jimp/core" "^0.6.8" - core-js "^2.5.7" - -"@jimp/gif@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.6.8.tgz#848dd4e6e1a56ca2b3ce528969e44dfa99a53b14" - integrity sha512-yyOlujjQcgz9zkjM5ihZDEppn9d1brJ7jQHP5rAKmqep0G7FU1D0AKcV+Ql18RhuI/CgWs10wAVcrQpmLnu4Yw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - omggif "^1.0.9" - -"@jimp/jpeg@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.6.8.tgz#4cad85a6d1e15759acb56bddef29aa3473859f2c" - integrity sha512-rGtXbYpFXAn471qLpTGvhbBMNHJo5KiufN+vC5AWyufntmkt5f0Ox2Cx4ijuBMDtirZchxbMLtrfGjznS4L/ew== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - jpeg-js "^0.3.4" - -"@jimp/plugin-blit@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.6.8.tgz#646ebb631f35afc28c1e8908524bc43d1e9afa3d" - integrity sha512-7Tl6YpKTSpvwQbnGNhsfX2zyl3jRVVopd276Y2hF2zpDz9Bycow7NdfNU/4Nx1jaf96X6uWOtSVINcQ7rGd47w== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-blur@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.6.8.tgz#7b753ae94f6099103f57c268c3b2679047eefe95" - integrity sha512-NpZCMKxXHLDQsX9zPlWtpMA660DQStY6/z8ZetyxCDbqrLe9YCXpeR4MNhdJdABIiwTm1W5FyFF4kp81PHJx3Q== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-color@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.6.8.tgz#4101cb1208879b331db6e43ea6b96eaf8dbaedbc" - integrity sha512-jjFyU0zNmGOH2rjzHuOMU4kaia0oo82s/7UYfn5h7OUkmUZTd6Do3ZSK1PiXA7KR+s4B76/Omm6Doh/0SGb7BQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - tinycolor2 "^1.4.1" - -"@jimp/plugin-contain@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.6.8.tgz#af95d33b63d0478943374ae15dd2607fc69cad14" - integrity sha512-p/P2wCXhAzbmEgXvGsvmxLmbz45feF6VpR4m9suPSOr8PC/i/XvTklTqYEUidYYAft4vHgsYJdS74HKSMnH8lw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-cover@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.6.8.tgz#490e3186627a34d93cc015c4169bac9070d6ad17" - integrity sha512-2PvWgk+PJfRsfWDI1G8Fpjrsu0ZlpNyZxO2+fqWlVo6y/y2gP4v08FqvbkcqSjNlOu2IDWIFXpgyU0sTINWZLg== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-crop@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.6.8.tgz#ffec8951a2f3eccad1e3cff9afff5326bd980ce7" - integrity sha512-CbrcpWE2xxPK1n/JoTXzhRUhP4mO07mTWaSavenCg664oQl/9XCtL+A0FekuNHzIvn4myEqvkiTwN7FsbunS/Q== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-displace@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.6.8.tgz#89df05ab7daaff6befc190bb8ac54ec8d57e533b" - integrity sha512-RmV2bPxoPE6mrPxtYSPtHxm2cGwBQr5a2p+9gH6SPy+eUMrbGjbvjwKNfXWUYD0leML+Pt5XOmAS9pIROmuruQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-dither@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.6.8.tgz#17e5b9f56575a871e329fef8b388e614b92d84f8" - integrity sha512-x6V/qjxe+xypjpQm7GbiMNqci1EW5UizrcebOhHr8AHijOEqHd2hjXh5f6QIGfrkTFelc4/jzq1UyCsYntqz9Q== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-flip@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.6.8.tgz#153df0c677f79d4078bb9e4c1f2ac392b96dc3a1" - integrity sha512-4il6Da6G39s9MyWBEee4jztEOUGJ40E6OlPjkMrdpDNvge6hYEAB31BczTYBP/CEY74j4LDSoY5LbcU4kv06yA== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-gaussian@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.6.8.tgz#100abc7ae1f19fe9c09ed41625b475aae7c6093c" - integrity sha512-pVOblmjv7stZjsqloi4YzHVwAPXKGdNaHPhp4KP4vj41qtc6Hxd9z/+VWGYRTunMFac84gUToe0UKIXd6GhoKw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-invert@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.6.8.tgz#f40bfaa3b592d21ff14ede0e49aabec88048cad0" - integrity sha512-11zuLiXDHr6tFv4U8aieXqNXQEKbDbSBG/h+X62gGTNFpyn8EVPpncHhOqrAFtZUaPibBqMFlNJ15SzwC7ExsQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-mask@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.6.8.tgz#e64405f7dacf0672bff74f3b95b724d9ac517f86" - integrity sha512-hZJ0OiKGJyv7hDSATwJDkunB1Ie80xJnONMgpUuUseteK45YeYNBOiZVUe8vum8QI1UwavgBzcvQ9u4fcgXc9g== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-normalize@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.6.8.tgz#a0180f2b8835e3638cdc5e057b44ac63f60db6ba" - integrity sha512-Q4oYhU+sSyTJI7pMZlg9/mYh68ujLfOxXzQGEXuw0sHGoGQs3B0Jw7jmzGa6pIS06Hup5hD2Zuh1ppvMdjJBfQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-print@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.6.8.tgz#66309549e01896473111e3a0ad2cee428638bd6e" - integrity sha512-2aokejGn4Drv1FesnZGqh5KEq0FQtR0drlmtyZrBH+r9cx7hh0Qgf4D1BOTDEgXkfSSngjGRjKKRW/fwOrVXYw== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - load-bmfont "^1.4.0" - -"@jimp/plugin-resize@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.6.8.tgz#c26d9a973f7eec51ad9018fcbbac1146f7a73aa0" - integrity sha512-27nPh8L1YWsxtfmV/+Ub5dOTpXyC0HMF2cu52RQSCYxr+Lm1+23dJF70AF1poUbUe+FWXphwuUxQzjBJza9UoA== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-rotate@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.6.8.tgz#2afda247984eeebed95c1bb1b13ccd3be5973299" - integrity sha512-GbjETvL05BDoLdszNUV4Y0yLkHf177MnqGqilA113LIvx9aD0FtUopGXYfRGVvmtTOTouoaGJUc+K6qngvKxww== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugin-scale@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.6.8.tgz#5de403345859bb0b30bf3e242dedd8ceb6ecb96c" - integrity sha512-GzIYWR/oCUK2jAwku23zt19V1ssaEU4pL0x2XsLNKuuJEU6DvEytJyTMXCE7OLG/MpDBQcQclJKHgiyQm5gIOQ== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - -"@jimp/plugins@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.6.8.tgz#5618170a986ced1ea795adcd9376122f2543b856" - integrity sha512-fMcTI72Vn/Lz6JftezTURmyP5ml/xGMe0Ljx2KRJ85IWyP33vDmGIUuutFiBEbh2+y7lRT+aTSmjs0QGa/xTmQ== - dependencies: - "@jimp/plugin-blit" "^0.6.8" - "@jimp/plugin-blur" "^0.6.8" - "@jimp/plugin-color" "^0.6.8" - "@jimp/plugin-contain" "^0.6.8" - "@jimp/plugin-cover" "^0.6.8" - "@jimp/plugin-crop" "^0.6.8" - "@jimp/plugin-displace" "^0.6.8" - "@jimp/plugin-dither" "^0.6.8" - "@jimp/plugin-flip" "^0.6.8" - "@jimp/plugin-gaussian" "^0.6.8" - "@jimp/plugin-invert" "^0.6.8" - "@jimp/plugin-mask" "^0.6.8" - "@jimp/plugin-normalize" "^0.6.8" - "@jimp/plugin-print" "^0.6.8" - "@jimp/plugin-resize" "^0.6.8" - "@jimp/plugin-rotate" "^0.6.8" - "@jimp/plugin-scale" "^0.6.8" - core-js "^2.5.7" - timm "^1.6.1" - -"@jimp/png@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.6.8.tgz#ee06cf078b381137ec7206c4bb1b4cfcbe15ca6f" - integrity sha512-JHHg/BZ7KDtHQrcG+a7fztw45rdf7okL/YwkN4qU5FH7Fcrp41nX5QnRviDtD9hN+GaNC7kvjvcqRAxW25qjew== - dependencies: - "@jimp/utils" "^0.6.8" - core-js "^2.5.7" - pngjs "^3.3.3" - -"@jimp/tiff@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.6.8.tgz#79bd22ed435edbe29d02a2c8c9bf829f988ebacc" - integrity sha512-iWHbxd+0IKWdJyJ0HhoJCGYmtjPBOusz1z1HT/DnpePs/Lo3TO4d9ALXqYfUkyG74ZK5jULZ69KLtwuhuJz1bg== - dependencies: - core-js "^2.5.7" - utif "^2.0.1" - -"@jimp/types@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.6.8.tgz#4510eb635cd00b201745d70e38f791748baa7075" - integrity sha512-vCZ/Cp2osy69VP21XOBACfHI5HeR60Rfd4Jidj4W73UL+HrFWOtyQiJ7hlToyu1vI5mR/NsUQpzyQvz56ADm5A== - dependencies: - "@jimp/bmp" "^0.6.8" - "@jimp/gif" "^0.6.8" - "@jimp/jpeg" "^0.6.8" - "@jimp/png" "^0.6.8" - "@jimp/tiff" "^0.6.8" - core-js "^2.5.7" - timm "^1.6.1" - -"@jimp/utils@^0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.6.8.tgz#09f794945631173567aa50f72ac28170de58a63d" - integrity sha512-7RDfxQ2C/rarNG9iso5vmnKQbcvlQjBIlF/p7/uYj72WeZgVCB+5t1fFBKJSU4WhniHX4jUMijK+wYGE3Y3bGw== - dependencies: - core-js "^2.5.7" - -"@octokit/auth-token@^2.4.0": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" - integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== - dependencies: - "@octokit/types" "^5.0.0" - -"@octokit/core@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.1.2.tgz#c937d5f9621b764573068fcd2e5defcc872fd9cc" - integrity sha512-AInOFULmwOa7+NFi9F8DlDkm5qtZVmDQayi7TUgChE3yeIGPq0Y+6cAEXPexQ3Ea+uZy66hKEazR7DJyU+4wfw== - dependencies: - "@octokit/auth-token" "^2.4.0" - "@octokit/graphql" "^4.3.1" - "@octokit/request" "^5.4.0" - "@octokit/types" "^5.0.0" - before-after-hook "^2.1.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^6.0.1": - version "6.0.6" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.6.tgz#4f09f2b468976b444742a1d5069f6fa45826d999" - integrity sha512-7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ== - dependencies: - "@octokit/types" "^5.0.0" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^4.3.1": - version "4.5.6" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.6.tgz#708143ba15cf7c1879ed6188266e7f270be805d4" - integrity sha512-Rry+unqKTa3svswT2ZAuqenpLrzJd+JTv89LTeVa5UM/5OX8o4KTkPL7/1ABq4f/ZkELb0XEK/2IEoYwykcLXg== - dependencies: - "@octokit/request" "^5.3.0" - "@octokit/types" "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/plugin-paginate-rest@^2.2.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.4.0.tgz#92f951ddc8a1cd505353fa07650752ca25ed7e93" - integrity sha512-YT6Klz3LLH6/nNgi0pheJnUmTFW4kVnxGft+v8Itc41IIcjl7y1C8TatmKQBbCSuTSNFXO5pCENnqg6sjwpJhg== - dependencies: - "@octokit/types" "^5.5.0" - -"@octokit/plugin-request-log@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" - integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== - -"@octokit/plugin-rest-endpoint-methods@4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.0.tgz#c5a0691b3aba5d8b4ef5dffd6af3649608f167ba" - integrity sha512-1/qn1q1C1hGz6W/iEDm9DoyNoG/xdFDt78E3eZ5hHeUfJTLJgyAMdj9chL/cNBHjcjd+FH5aO1x0VCqR2RE0mw== - dependencies: - "@octokit/types" "^5.5.0" - deprecation "^2.3.1" - -"@octokit/request-error@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" - integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== - dependencies: - "@octokit/types" "^5.0.1" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^5.3.0", "@octokit/request@^5.4.0": - version "5.4.9" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.9.tgz#0a46f11b82351b3416d3157261ad9b1558c43365" - integrity sha512-CzwVvRyimIM1h2n9pLVYfTDmX9m+KHSgCpqPsY8F1NdEK8IaWqXhSBXsdjOBFZSpEcxNEeg4p0UO9cQ8EnOCLA== - dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.0.0" - "@octokit/types" "^5.0.0" - deprecation "^2.0.0" - is-plain-object "^5.0.0" - node-fetch "^2.6.1" - once "^1.4.0" - universal-user-agent "^6.0.0" - -"@octokit/rest@^18.0.6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.0.6.tgz#76c274f1a68f40741a131768ef483f041e7b98b6" - integrity sha512-ES4lZBKPJMX/yUoQjAZiyFjei9pJ4lTTfb9k7OtYoUzKPDLl/M8jiHqt6qeSauyU4eZGLw0sgP1WiQl9FYeM5w== - dependencies: - "@octokit/core" "^3.0.0" - "@octokit/plugin-paginate-rest" "^2.2.0" - "@octokit/plugin-request-log" "^1.0.0" - "@octokit/plugin-rest-endpoint-methods" "4.2.0" - -"@octokit/types@^5.0.0", "@octokit/types@^5.0.1", "@octokit/types@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" - integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== - dependencies: - "@types/node" ">= 8" - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/cordova@^0.0.34": - version "0.0.34" - resolved "https://registry.yarnpkg.com/@types/cordova/-/cordova-0.0.34.tgz#ea7addf74ecec3d7629827a0c39e2c9addc73d04" - integrity sha1-6nrd907Ow9dimCegw54smt3HPQQ= - -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - -"@types/filesystem@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz#ee3748eb5be140dcf980c3bd35f11aec5f7a3748" - integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== - dependencies: - "@types/filewriter" "*" - -"@types/filewriter@*": - version "0.0.28" - resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz#c054e8af4d9dd75db4e63abc76f885168714d4b3" - integrity sha1-wFTor02d11205jq8dviFFocU1LM= - -"@types/json-schema@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== - -"@types/node@>= 8": - version "14.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" - integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== - -"@types/q@^1.5.1": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== - -"@typescript-eslint/eslint-plugin@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.1.tgz#368fe7d4c3d927e9fd27b7ba150b4b7e83ddfabe" - integrity sha512-RxGldRQD3hgOK2xtBfNfA5MMV3rn5gVChe+MIf14hKm51jO2urqF64xOyVrGtzThkrd4rS1Kihqx2nkSxkXHvA== - dependencies: - "@typescript-eslint/experimental-utils" "3.0.1" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.1.tgz#e2721c970068fabd6621709234809c98cd3343ad" - integrity sha512-GdwOVz80MOWxbc/br1DC30eeqlxfpVzexHgHtf3L0hcbOu1xAs1wSCNcaBTLMOMZbh1gj/cKZt0eB207FxWfFA== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "3.0.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.0.1.tgz#f5163e3a789422f5c62f4daf822bfa03b7e4472d" - integrity sha512-Pn2tDmOc4Ri93VQnT70W0pqQr6i/pEZqIPXfWXm4RuiIprL0t6SG13ViVXHgfScknL2Fm2G4IqXhUzxSRCWXCw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.0.1" - "@typescript-eslint/typescript-estree" "3.0.1" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/typescript-estree@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.1.tgz#8c0cfb7cda64bd6f54185a7b7d1923d25d36b2a8" - integrity sha512-FrbMdgVCeIGHKaP9OYTttFTlF8Ds7AkjMca2GzYCE7pVch10PAJc1mmAFt+DfQPgu/2TrLAprg2vI0PK/WTdcg== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== - -acorn-walk@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" - integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== - -acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.1.tgz#b83ca89c5d42d69031f424cad49aada0236c6957" - integrity sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA== - -ajv@^6.1.0: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.10.0: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.10.2, ajv@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -any-base@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" - integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -arch@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" - integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== - -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= - dependencies: - file-type "^4.2.0" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assets@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/assets/-/assets-3.0.1.tgz#7a69f4bcc3aca9702760e2a73a7e76ca93e9e3e0" - integrity sha512-fTyLNf/9V24y5zO83f4DAEuvaKj7MWBixbnqdZneAhsv1r21yQ/6ogZfvXHmphJAHsz4DhuOwHeJKVbGqqvk0Q== - dependencies: - async "^2.5.0" - bluebird "^3.4.6" - calipers "^2.0.0" - calipers-gif "^2.0.0" - calipers-jpeg "^2.0.0" - calipers-png "^2.0.0" - calipers-svg "^2.0.0" - calipers-webp "^2.0.0" - glob "^7.0.6" - lodash "^4.15.0" - mime "^2.4.0" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types@0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" - integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -async@~0.2.10: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^9.4.3, autoprefixer@^9.4.7, autoprefixer@^9.6.1: - version "9.7.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.6.tgz#63ac5bbc0ce7934e6997207d5bb00d68fa8293a4" - integrity sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ== - dependencies: - browserslist "^4.11.1" - caniuse-lite "^1.0.30001039" - chalk "^2.4.2" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.27" - postcss-value-parser "^4.0.3" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^8.0.4: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-closure-elimination@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-closure-elimination/-/babel-plugin-closure-elimination-1.3.0.tgz#3217fbf6d416dfdf14ff41a8a34e4d0a6bfc22b2" - integrity sha512-ClKuSxKLLNhe69bvTMuONDI0dQDW49lXB2qtQyyKCzvwegRGel/q4/e+1EoDNDN97Hf1QkxGMbzpAGPmU4Tfjw== - -babel-plugin-console-source@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/babel-plugin-console-source/-/babel-plugin-console-source-2.0.4.tgz#263985b1d69b68e463358d087fa877dd967c5f41" - integrity sha512-OGhrdhuMjiEW0Ma0P9e2B4dFddCpJ/xN/RRaM/4wwDLl+6ZKf+Xd77FtVjpNeDzNRNk8wjRdStA4hpZizXzl1g== - -babel-plugin-danger-remove-unused-import@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-danger-remove-unused-import/-/babel-plugin-danger-remove-unused-import-1.1.2.tgz#ac39c30edfe524ef8cfc411fec5edc479d19e132" - integrity sha512-3bNmVAaakP3b1aROj7O3bOWj2kBa85sZR5naZ3Rn8L9buiZaAyZLgjfrPDL3zhX4wySOA5jrTm/wSmJPsMm3cg== - -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-runtime@^7.0.0-beta.3: - version "7.0.0-beta.3" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-7.0.0-beta.3.tgz#7c750de5514452c27612172506b49085a4a630f2" - integrity sha512-jlzZ8RACjt0QGxq+wqsw5bCQE9RcUyWpw987mDY3GYxTpOQT2xoyNoG++oVCHzr/nACLBIprfVBNvv/If1ZYcg== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -before-after-hook@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" - integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== - -bfj@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" - integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== - dependencies: - bluebird "^3.5.5" - check-types "^8.0.3" - hoopy "^0.1.4" - tryer "^1.0.1" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bin-build@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" - integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== - dependencies: - decompress "^4.0.0" - download "^6.2.2" - execa "^0.7.0" - p-map-series "^1.0.0" - tempfile "^2.0.0" - -bin-check@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" - integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== - dependencies: - execa "^0.7.0" - executable "^4.1.0" - -bin-version-check@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" - integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== - dependencies: - bin-version "^3.0.0" - semver "^5.6.0" - semver-truncate "^1.1.2" - -bin-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" - integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== - dependencies: - execa "^1.0.0" - find-versions "^3.0.0" - -bin-wrapper@^4.0.0, bin-wrapper@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" - integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== - dependencies: - bin-check "^4.1.0" - bin-version-check "^4.0.0" - download "^7.1.0" - import-lazy "^3.1.0" - os-filter-obj "^2.0.0" - pify "^4.0.1" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -bluebird@3.x.x, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bmp-js@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" - integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.6.4, browserslist@^4.8.5, browserslist@^4.9.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" - integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== - dependencies: - caniuse-lite "^1.0.30001038" - electron-to-chromium "^1.3.390" - node-releases "^1.1.53" - pkg-up "^2.0.0" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.1.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -buffer@^5.2.0, buffer@^5.2.1: - version "5.5.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce" - integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - -calipers-gif@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-gif/-/calipers-gif-2.0.0.tgz#b5eefec3064a77c6dcdbd5bdc51735a01bafdc37" - integrity sha1-te7+wwZKd8bc29W9xRc1oBuv3Dc= - dependencies: - bluebird "3.x.x" - -calipers-jpeg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-jpeg/-/calipers-jpeg-2.0.0.tgz#06d56a53f62717dd809cb956cf64423ce693465b" - integrity sha1-BtVqU/YnF92AnLlWz2RCPOaTRls= - dependencies: - bluebird "3.x.x" - -calipers-png@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-png/-/calipers-png-2.0.0.tgz#1d0d20e5c1ae5f79b74d5286a2e97f59bb70b658" - integrity sha1-HQ0g5cGuX3m3TVKGoul/Wbtwtlg= - dependencies: - bluebird "3.x.x" - -calipers-svg@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/calipers-svg/-/calipers-svg-2.0.1.tgz#cd9eaa58ef7428c1a14f5da57e56715fb60f6541" - integrity sha512-3PROqHARmj8wWudUC7DzXm1+mSocqgY7jNuehFNHgrUVrKf8o7MqDjS92vJz5LvZsAofJsoAFMajkqwbxBROSQ== - dependencies: - bluebird "3.x.x" - -calipers-webp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/calipers-webp/-/calipers-webp-2.0.0.tgz#e126ece2f84cd71779612bfa2b2653cd95cea77a" - integrity sha1-4Sbs4vhM1xd5YSv6KyZTzZXOp3o= - dependencies: - bluebird "3.x.x" - -calipers@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/calipers/-/calipers-2.0.1.tgz#0d3f303ce75ec5f1eda7fecfc7dba6736e35c926" - integrity sha512-AP4Ui2Z8fZf69d8Dx4cfJgPjQHY3m+QXGFCaAGu8pfNQjyajkosS+Kkf1n6pQDMZcelN5h3MdcjweUqxcsS4pg== - dependencies: - bluebird "3.x.x" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001038, caniuse-lite@^1.0.30001039: - version "1.0.30001041" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001041.tgz#c2ea138dafc6fe03877921ddcddd4a02a14daf76" - integrity sha512-fqDtRCApddNrQuBxBS7kEiSGdBsgO4wiVw4G/IClfqzfhW45MbTumfN4cuUJGTM0YGFNn97DCXPJ683PS6zwvA== - -caw@^2.0.0, caw@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" - integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -check-types@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" - integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" - integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-dependency-plugin@^5.0.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" - integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== - -circular-json@^0.5.9: - version "0.5.9" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d" - integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.2.x: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - -clipboard-copy@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/clipboard-copy/-/clipboard-copy-3.1.0.tgz#4c59030a43d4988990564a664baeafba99f78ca4" - integrity sha512-Xsu1NddBXB89IUauda5BIq3Zq73UWkjkaQlPQbLNvNsd5WBMnTWPNKYR6HGaySOxGYZ+BKxP2E9X4ElnI3yiPA== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -colors@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -commander@2.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commander@^2.18.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= - dependencies: - graceful-readlink ">= 1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-stream@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" - integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3, content-disposition@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.5.1, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - -core-js@3: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - -core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -crc@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" - integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== - dependencies: - buffer "^5.1.0" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@6.0.5, cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.9.1.tgz#2e1aa00ce7e30ef2c6a7a4b300a080a7c979e0dc" - integrity sha1-LhqgDOfjDvLGp6SzAKCAp8l54Nw= - dependencies: - csso "1.3.x" - loader-utils "~0.2.2" - source-map "~0.1.38" - -css-mqpacker@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/css-mqpacker/-/css-mqpacker-7.0.0.tgz#48f4a0ff45b81ec661c4a33ed80b9db8a026333b" - integrity sha512-temVrWS+sB4uocE2quhW8ru/KguDmGhCU7zN213KxtDvWOH3WS/ZUStfpF4fdCT7W8fPpFrQdWRFqtFtPPfBLA== - dependencies: - minimist "^1.2.0" - postcss "^7.0.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== - dependencies: - mdn-data "2.0.6" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" - integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-advanced@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-4.0.7.tgz#d981527b77712e2f3f3f09c73313e9b71b278b88" - integrity sha512-j1O5/DQnaAqEyFFQfC+Z/vRlLXL3LxJHN+lvsfYqr7KgPH74t69+Rsy2yXkovWNaJjZYBpdz2Fj8ab2nH7pZXw== - dependencies: - autoprefixer "^9.4.7" - cssnano-preset-default "^4.0.7" - postcss-discard-unused "^4.0.1" - postcss-merge-idents "^4.0.1" - postcss-reduce-idents "^4.0.2" - postcss-zindex "^4.0.1" - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@1.3.x: - version "1.3.12" - resolved "https://registry.yarnpkg.com/csso/-/csso-1.3.12.tgz#fc628694a2d38938aaac4996753218fd311cdb9e" - integrity sha1-/GKGlKLTiTiqrEmWdTIY/TEc254= - -csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== - dependencies: - css-tree "1.0.0-alpha.39" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -debounce-promise@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/debounce-promise/-/debounce-promise-3.1.2.tgz#320fb8c7d15a344455cd33cee5ab63530b6dc7c5" - integrity sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0, decompress@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deep-scope-analyser@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/deep-scope-analyser/-/deep-scope-analyser-1.7.0.tgz#23015b3a1d23181b1d9cebd25b783a7378ead8da" - integrity sha512-rl5Dmt2IZkFpZo6XbEY1zG8st2Wpq8Pi/dV2gz8ZF6BDYt3fnor2JNxHwdO1WLo0k6JbmYp0x8MNy8kE4l1NtA== - dependencies: - esrecurse "^4.2.1" - estraverse "^4.2.0" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -deprecation@^2.0.0, deprecation@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - -download@^6.2.2: - version "6.2.5" - resolved "https://registry.yarnpkg.com/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" - integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== - dependencies: - caw "^2.0.0" - content-disposition "^0.5.2" - decompress "^4.0.0" - ext-name "^5.0.0" - file-type "5.2.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^7.0.0" - make-dir "^1.0.0" - p-event "^1.0.0" - pify "^3.0.0" - -download@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" - integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== - dependencies: - archive-type "^4.0.0" - caw "^2.0.1" - content-disposition "^0.5.2" - decompress "^4.2.0" - ext-name "^5.0.0" - file-type "^8.1.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^8.3.1" - make-dir "^1.2.0" - p-event "^2.1.0" - pify "^3.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - -electron-to-chromium@^1.3.390: - version "1.3.403" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.403.tgz#c8bab4e2e72bf78bc28bad1cc355c061f9cc1918" - integrity sha512-JaoxV4RzdBAZOnsF4dAlZ2ijJW72MbqO5lNfOBHUWiBQl3Rwe+mk2RCUMrRI3rSClLJ8HSNQNqcry12H+0ZjFw== - -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -email-validator@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" - integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -enhanced-resolve@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-templates@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" - integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= - dependencies: - recast "~0.11.12" - through "~2.3.6" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-config-prettier@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" - integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== - dependencies: - get-stdin "^6.0.0" - -eslint-plugin-prettier@3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz#ae116a0fc0e598fdae48743a4430903de5b4e6ca" - integrity sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" - integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== - -eslint@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.1.0.tgz#d9a1df25e5b7859b0a3d86bb05f0940ab676a851" - integrity sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - eslint-visitor-keys "^1.1.0" - espree "^7.0.0" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.14" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" - integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esprima@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0, esrecurse@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== - dependencies: - cross-spawn "^6.0.0" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -executable@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -exif-parser@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" - integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -express@^4.16.3: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastdom@^1.0.8: - version "1.0.9" - resolved "https://registry.yarnpkg.com/fastdom/-/fastdom-1.0.9.tgz#b395fab11a3701173c02a054fe769d8f596a0a26" - integrity sha512-SSp4fbVzu8JkkG01NUX+0iOwe9M5PN3MGIQ84txLf4TkkJG4q30khkzumKgi4hUqO1+jX6wLHfnCPoZ6eSZ6Tg== - dependencies: - strictdom "^1.0.1" - -faster.js@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/faster.js/-/faster.js-1.1.1.tgz#8bbd7eefdb8f03faac26ad5025b059f94c5cfb4d" - integrity sha512-vPThNSLL/E1f7cLHd9yuayxZR82o/Iic4S5ZY45iY5AgBLNIlr3b3c+VpDjoYqjY9a9C/FQVUQy9oTILVP7X0g== - -fastparse@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-loader@^0.8.1: - version "0.8.5" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.8.5.tgz#9275d031fe780f27d47f5f4af02bd43713cc151b" - integrity sha1-knXQMf54DyfUf19K8CvUNxPMFRs= - dependencies: - loader-utils "~0.2.5" - -file-type@5.2.0, file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - -file-type@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" - integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== - -file-type@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" - integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" - integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-versions@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== - dependencies: - semver-regex "^2.0.0" - -findup-sync@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0, flatted@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0, from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" - integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== - dependencies: - npm-conf "^1.1.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-all@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.2.1.tgz#082ca81afd2247cbd3ed2149bb2630f4dc877d95" - integrity sha512-x877rVkzB3ipid577QOp+eQCR6M5ZyiwrtaYgrX/z3EThaSPFtLDwBXFHc3sH1cG0R0vFYI5SRYeWMMSEyXkUw== - dependencies: - glob "^7.1.2" - yargs "^15.3.1" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.5, glob@^7.0.6, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -gonzales-pe@^4.2.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" - integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== - dependencies: - minimist "^1.2.5" - -got@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -got@^8.3.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.10: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= - -gzip-size@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -howler@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.3.tgz#07c88618f8767e879407a4d647fe2d6d5f15f121" - integrity sha512-PSGbOi1EYgw80C5UQbxtJM7TmzD+giJunIMBYyH3RVzHZx2fZLYBoes0SpVVHi/SFa1GoNtgXj/j6I7NOKYBxQ== - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-loader@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea" - integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog== - dependencies: - es6-templates "^0.2.3" - fastparse "^1.1.1" - html-minifier "^3.5.8" - loader-utils "^1.1.0" - object-assign "^4.1.1" - -html-minifier@^3.5.8: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-loader@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ignore-loader/-/ignore-loader-0.1.2.tgz#d81f240376d0ba4f0d778972c3ad25874117a463" - integrity sha1-2B8kA3bQuk8Nd4lyw60lh0EXpGM= - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -imagemin-mozjpeg@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz#d2ca4e8c982c7c6eda55069af89dee4c1cebcdfd" - integrity sha512-+EciPiIjCb8JWjQNr1q8sYWYf7GDCNDxPYnkD11TNIjjWNzaV+oTg4DpOPQjl5ZX/KRCPMEgS79zLYAQzLitIA== - dependencies: - execa "^1.0.0" - is-jpg "^2.0.0" - mozjpeg "^6.0.0" - -imagemin-pngquant@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-8.0.0.tgz#bf7a41d850c6998f2475c54058ab1db9c516385d" - integrity sha512-PVq0diOxO+Zyq/zlMCz2Pfu6mVLHgiT1GpW702OwVlnej+NhS6ZQegYi3OFEDW8d7GxouyR5e8R+t53SMciOeg== - dependencies: - execa "^1.0.0" - is-png "^2.0.0" - is-stream "^2.0.0" - ow "^0.13.2" - pngquant-bin "^5.0.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" - integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== - -import-local@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" - integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-function@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" - integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-jpg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" - integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-png@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-png/-/is-png-2.0.0.tgz#ee8cbc9e9b050425cedeeb4a6fb74a649b0a4a8d" - integrity sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g== - -is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jimp@^0.6.1: - version "0.6.8" - resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.6.8.tgz#63074984337cc469cd4030946e503e7c02a18b5c" - integrity sha512-F7emeG7Hp61IM8VFbNvWENLTuHe0ghizWPuP4JS9ujx2r5mCVYEd/zdaz6M2M42ZdN41blxPajLWl9FXo7Mr2Q== - dependencies: - "@jimp/custom" "^0.6.8" - "@jimp/plugins" "^0.6.8" - "@jimp/types" "^0.6.8" - core-js "^2.5.7" - regenerator-runtime "^0.13.3" - -jpeg-js@^0.3.4: - version "0.3.7" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" - integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== - -js-base64@^2.1.9: - version "2.5.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" - integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.4.2: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -known-css-properties@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.11.0.tgz#0da784f115ea77c76b81536d7052e90ee6c86a8a" - integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -line-column@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" - integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= - dependencies: - isarray "^1.0.0" - isobject "^2.0.0" - -load-bmfont@^1.3.1, load-bmfont@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" - integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g== - dependencies: - buffer-equal "0.0.1" - mime "^1.3.4" - parse-bmfont-ascii "^1.0.3" - parse-bmfont-binary "^1.0.5" - parse-bmfont-xml "^1.1.4" - phin "^2.9.1" - xhr "^2.0.1" - xtend "^4.0.0" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^0.2.5, loader-utils@~0.2.2, loader-utils@~0.2.3, loader-utils@~0.2.5: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.0, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.4: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -logalot@^2.0.0, logalot@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" - integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= - dependencies: - figures "^1.3.5" - squeak "^1.0.0" - -logrocket@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/logrocket/-/logrocket-1.0.7.tgz#fe17dbdfc861481cd274fbda533d552de7800a3a" - integrity sha512-v6HWEQIsyG+3FkldB7vIAgHh7/qpsiz2Br4bLK5SHBvjqRrHs/Fp+Jr8oiA2GYq0UurAtCu51U8SWft5+OCKtg== - -longest@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lpad-align@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" - integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= - dependencies: - get-stdin "^4.0.1" - indent-string "^2.1.0" - longest "^1.0.0" - meow "^3.3.0" - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= - -make-dir@^1.0.0, make-dir@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/markdown-loader/-/markdown-loader-4.0.0.tgz#502eb94f5db1673beb1721bed82dac9e1d333b9a" - integrity sha512-9BCm8iyLF4AVYtjtybOTg8cTcpWYKsDGWWhsc7XaJlXQiddo3ztbZxLPJ28pmCxFI1BlMkT1wDVav1chPjTpdA== - dependencies: - loader-utils "^1.1.0" - marked "^0.5.0" - -marked@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.5.2.tgz#3efdb27b1fd0ecec4f5aba362bddcd18120e5ba9" - integrity sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA== - -match-all@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/match-all/-/match-all-1.2.5.tgz#f709af311a7cb9ae464d9107a4f0fe08d3326eff" - integrity sha512-KW4trRDMYbVkAKZ1J655vh0931mk3XM1lIJ480TXUL3KBrOsZ6WpryYJELonvtXC1O4erLYB069uHidLkswbjQ== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.43.0, mime-db@^1.28.0: - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== - -mime-types@~2.1.24: - version "2.1.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== - dependencies: - mime-db "1.43.0" - -mime@1.6.0, mime@^1.3.4: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - -mimic-fn@^2.0.0, mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -mozjpeg@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/mozjpeg/-/mozjpeg-6.0.1.tgz#56969dddb5741ef2bcb1af066cae21e61a91a27b" - integrity sha512-9Z59pJMi8ni+IUvSH5xQwK5tNLw7p3dwDNCZ3o1xE+of3G5Hc/yOz6Ue/YuLiBXU3ZB5oaHPURyPdqfBX/QYJA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.1.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanoid@^3.1.12: - version "3.1.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" - integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -omggif@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -opener@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" - integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-filter-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" - integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== - dependencies: - arch "^2.1.0" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -ow@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/ow/-/ow-0.13.2.tgz#375e76d3d3f928a8dfcf0cd0b9c921cb62e469a0" - integrity sha512-9wvr+q+ZTDRvXDjL6eDOdFe5WUl/wa5sntf9kAolxqSpkBqaIObwLgFCGXSJASFw+YciXnOVtDWpxXa9cqV94A== - dependencies: - type-fest "^0.5.1" - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-event@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" - integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= - dependencies: - p-timeout "^1.1.1" - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" - integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= - dependencies: - p-reduce "^1.0.0" - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@^1.0.5, pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-bmfont-ascii@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" - integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= - -parse-bmfont-binary@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" - integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= - -parse-bmfont-xml@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" - integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== - dependencies: - xml-parse-from-string "^1.0.0" - xml2js "^0.4.5" - -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -phin@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" - integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== - -phonegap-plugin-mobile-accessibility@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/phonegap-plugin-mobile-accessibility/-/phonegap-plugin-mobile-accessibility-1.0.5.tgz#95a8754d127508bc6e1ae259a53ce765836eac03" - integrity sha1-lah1TRJ1CLxuGuJZpTznZYNurAM= - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pixelmatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" - integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= - dependencies: - pngjs "^3.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -pngjs@^3.0.0, pngjs@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pngquant-bin@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-5.0.2.tgz#6f34f3e89c9722a72bbc509062b40f1b17cda460" - integrity sha512-OLdT+4JZx5BqE1CFJkrvomYV0aSsv6x2Bba+aWaVc0PMfWlE+ZByNKYAdKeIqsM4uvW1HOSEHnf8KcOnykPNxA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.1" - execa "^0.10.0" - logalot "^2.0.0" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-assets@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-assets/-/postcss-assets-5.0.0.tgz#f721d07d339605fb58414e9f69cf05401c54e709" - integrity sha1-9yHQfTOWBftYQU6fac8FQBxU5wk= - dependencies: - assets "^3.0.0" - bluebird "^3.5.0" - postcss "^6.0.10" - postcss-functions "^3.0.0" - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" - -postcss-calc@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" - integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-discard-unused@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-4.0.1.tgz#ee7cc66af8c7e8c19bd36f12d09c4bde4039abea" - integrity sha512-/3vq4LU0bLH2Lj4NYN7BTf2caly0flUB7Xtrk9a5K3yLuXMkHMqMO/x3sDq8W2b1eQFSCyY0IVz2L+0HP8kUUA== - dependencies: - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" - integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== - dependencies: - postcss "^7.0.2" - -postcss-functions@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" - integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= - dependencies: - glob "^7.1.2" - object-assign "^4.1.1" - postcss "^6.0.9" - postcss-value-parser "^3.3.0" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-initial@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" - integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== - dependencies: - lodash.template "^4.5.0" - postcss "^7.0.2" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-idents@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-4.0.1.tgz#b7df282a92f052ea0a66c62d8f8812e6d2cbed23" - integrity sha512-43S/VNdF6II0NZ31YxcvNYq4gfURlPAAsJW/z84avBXQCaP4I4qRHUH18slW/SOlJbcxxCobflPNUApYDddS7A== - dependencies: - cssnano-util-same-parent "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.5.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-idents@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-4.0.2.tgz#30447a6ec20941e78e21bd4482a11f569c4f455b" - integrity sha512-Tz70Ri10TclPoCtFfftjFVddx3fZGUkr0dEDbIEfbYhFUOFQZZ77TEqRrU0e6TvAvF+Wa5VVzYTpFpq0uwFFzw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-round-subpixels@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-round-subpixels/-/postcss-round-subpixels-1.2.0.tgz#e21d6ac5952e185f9bdc008b94f004fe509d0a11" - integrity sha1-4h1qxZUuGF+b3ACLlPAE/lCdChE= - dependencies: - postcss "^5.0.2" - postcss-value-parser "^3.1.2" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" - integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-unprefix@^2.1.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/postcss-unprefix/-/postcss-unprefix-2.1.4.tgz#ab1c038ab77f068799ed36e1cbd997b51e7360a1" - integrity sha512-s+muBiGIMx3RvgPTtPBnSrfvIBHJ2Zx16QZf/VDB/sAxdYP6FIzci8d1gLh0+9psu5W6zVtCbU5micNt6Zh3cg== - dependencies: - autoprefixer "^9.4.3" - known-css-properties "^0.11.0" - normalize-range "^0.1.2" - postcss-selector-parser "^5.0.0" - postcss-value-parser "^3.3.1" - pseudo-classes "^1.0.0" - pseudo-elements "^1.1.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.1.2, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" - integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== - -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-zindex@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-4.0.1.tgz#8db6a4cec3111e5d3fd99ea70abeda61873d10c1" - integrity sha512-d/8BlQcUdEugZNRM9AdCA2V4fqREUtn/wcixLN3L6ITgc2P/FMcVVYz8QZkhItWT9NB5qr8wuN2dJCE4/+dlrA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss@^5.0.2: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.10, postcss@^6.0.9: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" - integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.1.tgz#c3a287dd10e4f6c84cb3791052b96a5d859c9389" - integrity sha512-9DGLSsjooH3kSNjTZUOt2eIj2ZTW0VI2PZ/3My+8TC7KIbH2OKwUlISfDsf63EP4aiRUt3XkEWMWvyJHvJelEg== - dependencies: - colorette "^1.2.1" - line-column "^1.0.2" - nanoid "^3.1.12" - source-map "^0.6.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.4.tgz#2d1bae173e355996ee355ec9830a7a1ee05457ef" - integrity sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w== - -private@^0.1.8, private@~0.1.5: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-polyfill@^8.1.0: - version "8.1.3" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" - integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudo-classes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pseudo-classes/-/pseudo-classes-1.0.0.tgz#60a69b67395c36ff119c4d1c86e1981785206b96" - integrity sha1-YKabZzlcNv8RnE0chuGYF4Uga5Y= - -pseudo-elements@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pseudo-elements/-/pseudo-elements-1.1.0.tgz#9ba6dd8ac3ce1f3d7d36d4355aa3e28d08391f28" - integrity sha1-m6bdisPOHz19NtQ1WqPijQg5Hyg= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^6.8.1: - version "6.12.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.12.1.tgz#2ae4d272db4fba267141665374e49a1de09e8a7c" - integrity sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA== - dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - -recast@~0.11.12: - version "0.11.23" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" - integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= - dependencies: - ast-types "0.9.6" - esprima "~3.1.0" - private "~0.1.5" - source-map "~0.5.0" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== - -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0, resolve@^1.3.2: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== - dependencies: - path-parse "^1.0.6" - -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rusha@^0.8.13: - version "0.8.13" - resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz#9a084e7b860b17bff3015b92c67a6a336191513a" - integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo= - -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-unused@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/sass-unused/-/sass-unused-0.3.0.tgz#69924e4996d6c96840fb3a99e0a0290516811a9f" - integrity sha512-fGNcUpDeSFwnN+BTQ251iM77Py8awPXc96vSE3TpvMcgbC90IrohonRb4oxWX/KzHpezkmUddS8/t04R+yIB8w== - dependencies: - glob "^7.0.5" - gonzales-pe "^4.2.3" - -sax@>=0.6.0, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^0.4.0: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" - integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== - dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" - -seek-bzip@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w= - dependencies: - commander "~2.8.1" - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== - -semver-truncate@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" - integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= - dependencies: - semver "^5.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^7.2.1, semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-error@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-3.0.0.tgz#80100282b09be33c611536f50033481cb9cc87cf" - integrity sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A== - -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.0" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.1.38: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= - dependencies: - amdefine ">=0.0.4" - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -squeak@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" - integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= - dependencies: - chalk "^1.0.0" - console-stream "^0.1.1" - lpad-align "^1.0.1" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - -strictdom@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strictdom/-/strictdom-1.0.1.tgz#189de91649f73d44d59b8432efa68ef9d2659460" - integrity sha1-GJ3pFkn3PUTVm4Qy76aO+dJllGA= - -string-replace-webpack-plugin@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/string-replace-webpack-plugin/-/string-replace-webpack-plugin-0.1.3.tgz#73c657e759d66cfe80ae1e0cf091aa256d0e715c" - integrity sha1-c8ZX51nWbP6Arh4M8JGqJW0OcVw= - dependencies: - async "~0.2.10" - loader-utils "~0.2.3" - optionalDependencies: - css-loader "^0.9.1" - file-loader "^0.8.1" - style-loader "^0.8.3" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" - -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== - -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -style-loader@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.8.3.tgz#f4f92eb7db63768748f15065cd6700f5a1c85357" - integrity sha1-9Pkut9tjdodI8VBlzWcA9aHIU1c= - dependencies: - loader-utils "^0.2.5" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@6.1.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= - -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" - integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - -terser-webpack-plugin@^1.1.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" - integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^3.1.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6, through@^2.3.8, through@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -timm@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" - integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tinycolor2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" - integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -trim@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -tslib@^1.8.1, tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tsutils@^3.17.1: - version "3.17.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" - integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" - integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@3.9.3: - version "3.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a" - integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== - -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -uglify-template-string-loader@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/uglify-template-string-loader/-/uglify-template-string-loader-1.1.1.tgz#d091d15f66b65f1cae2f4222583009302c86339f" - integrity sha512-EHJx8m0aIHlwX5xlJd2xPYIFvLrPkVK5X8zpVxSNTmu7KoT2eSg1TNlwZS+JS65+dwJXC4rC5mc+F4UVe2rckw== - -unbzip2-stream@^1.0.9: - version "1.4.1" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.1.tgz#151b104af853df3efdaa135d8b1eca850a44b426" - integrity sha512-sgDYfSDPMsA4Hr2/w7vOlrJBlwzmyakk1+hW8ObLvxSp0LA36LcL2XItGvOT3OSblohSdevMuT8FQjLsqyy4sA== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unused-files-webpack-plugin@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/unused-files-webpack-plugin/-/unused-files-webpack-plugin-3.4.0.tgz#adc67a3b5549d028818d3119cbf2b5c88aea8670" - integrity sha512-cmukKOBdIqaM1pqThY0+jp+mYgCVyzrD8uRbKEucQwIGZcLIRn+gSRiQ7uLjcDd3Zba9NUxVGyYa7lWM4UCGeg== - dependencies: - babel-runtime "^7.0.0-beta.3" - glob-all "^3.1.0" - semver "^5.5.0" - util.promisify "^1.0.0" - warning "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -utif@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" - integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== - dependencies: - pako "^1.0.5" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@^1.0.0, util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== - -v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= - dependencies: - loose-envify "^1.0.0" - -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.0" - watchpack-chokidar2 "^2.0.0" - -webpack-bundle-analyzer@^3.0.3: - version "3.7.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.7.0.tgz#84da434e89442899b884d9ad38e466d0db02a56f" - integrity sha512-mETdjZ30a3Yf+NTB/wqTgACK7rAYQl5uxKK0WVTNmF0sM3Uv8s3R58YZMW7Rhu0Lk2Rmuhdj5dcH5Q76zCDVdA== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - bfj "^6.1.1" - chalk "^2.4.1" - commander "^2.18.0" - ejs "^2.6.1" - express "^4.16.3" - filesize "^3.6.1" - gzip-size "^5.0.0" - lodash "^4.17.15" - mkdirp "^0.5.1" - opener "^1.5.1" - ws "^6.0.0" - -webpack-cli@^3.1.0: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" - -webpack-deep-scope-plugin@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/webpack-deep-scope-plugin/-/webpack-deep-scope-plugin-1.6.2.tgz#131eac79739021e42ebc07066ea8869107f37b85" - integrity sha512-S5ZM1i7oTIVPIS1z/Fu41tqFzaXpy8vZnwEDC9I7NLj5XD8GGrDZbDXtG5FCGkHPGxtAzF4O21DKZZ76vpBGzw== - dependencies: - deep-scope-analyser "^1.7.0" - -webpack-plugin-replace@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/webpack-plugin-replace/-/webpack-plugin-replace-1.2.0.tgz#3f20db96237400433231e35ea76d9be3f7128916" - integrity sha512-1HA3etHpJW55qonJqv84o5w5GY7iqF8fqSHpTWdNwarj1llkkt4jT4QSvYs1hoaU8Lu5akDnq/spHHO5mXwo1w== - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-strip-block@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/webpack-strip-block/-/webpack-strip-block-0.2.0.tgz#c60d4a703e0eeee8895e7f1abe9b5fe914681470" - integrity sha1-xg1KcD4O7uiJXn8avptf6RRoFHA= - dependencies: - loader-utils "^1.1.0" - -webpack@^4.43.0: - version "4.43.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" - webpack-sources "^1.4.1" - -whatwg-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.14, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -worker-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac" - integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== - dependencies: - loader-utils "^1.0.0" - schema-utils "^0.4.0" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -xhr@^2.0.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xml-parse-from-string@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" - integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= - -xml2js@^0.4.5: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yaml-js@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/yaml-js/-/yaml-js-0.1.5.tgz#a01369010b3558d8aaed2394615dfd0780fd8fac" - integrity sha1-oBNpAQs1WNiq7SOUYV39B4D9j6w= - -yaml@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yargs-parser@^13.1.0: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.1: - version "18.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" - integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - -yargs@^15.3.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" - -yarn@^1.22.4: - version "1.22.4" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.4.tgz#01c1197ca5b27f21edc8bc472cd4c8ce0e5a470e" - integrity sha512-oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA== - -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yawn-yaml@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/yawn-yaml/-/yawn-yaml-1.5.0.tgz#95fba7544d5375fce3dc84514f12218ed0d2ebcb" - integrity sha512-sH2zX9K1QiWhWh9U19pye660qlzrEAd5c4ebw/6lqz17LZw7xYi7nqXlBoVLVtc2FZFXDKiJIsvVcKGYbLVyFQ== - dependencies: - js-yaml "^3.4.2" - lodash "^4.17.11" - yaml-js "^0.1.3" +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz" + integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== + dependencies: + browserslist "^4.9.1" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.5.4": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.9.0", "@babel/generator@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz" + integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== + dependencies: + "@babel/types" "^7.9.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-compilation-targets@^7.8.7": + version "7.8.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz" + integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== + dependencies: + "@babel/compat-data" "^7.8.6" + browserslist "^4.9.1" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz" + integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== + dependencies: + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz" + integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.9.5" + +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz" + integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz" + integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz" + integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz" + integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + +"@babel/plugin-proposal-object-rest-spread@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz" + integrity sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.9.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.8" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.8" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz" + integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-block-scoping@^7.4.4", "@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz" + integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.5.5", "@babel/plugin-transform-classes@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz" + integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-destructuring@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz" + integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz" + integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz" + integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz" + integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz" + integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz" + integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz" + integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== + dependencies: + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz" + integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz" + integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz" + integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.8.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz" + integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz" + integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz" + integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/preset-env@^7.5.4": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.5.tgz" + integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ== + dependencies: + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.5" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.9.5" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.9.5" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.5" + browserslist "^4.9.1" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.8.4": + version "7.9.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz" + integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.5" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": + version "7.9.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz" + integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== + dependencies: + "@babel/helper-validator-identifier" "^7.9.5" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@jimp/bmp@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.8.tgz" + integrity sha512-uxVgSkI62uAzk5ZazYHEHBehow590WAkLKmDXLzkr/XP/Hv2Fx1T4DKwJ/15IY5ktq5VAhAUWGXTyd8KWFsx7w== + dependencies: + "@jimp/utils" "^0.6.8" + bmp-js "^0.1.0" + core-js "^2.5.7" + +"@jimp/core@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/core/-/core-0.6.8.tgz" + integrity sha512-JOFqBBcSNiDiMZJFr6OJqC6viXj5NVBQISua0eacoYvo4YJtTajOIxC4MqWyUmGrDpRMZBR8QhSsIOwsFrdROA== + dependencies: + "@jimp/utils" "^0.6.8" + any-base "^1.1.0" + buffer "^5.2.0" + core-js "^2.5.7" + exif-parser "^0.1.12" + file-type "^9.0.0" + load-bmfont "^1.3.1" + mkdirp "0.5.1" + phin "^2.9.1" + pixelmatch "^4.0.2" + tinycolor2 "^1.4.1" + +"@jimp/custom@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/custom/-/custom-0.6.8.tgz" + integrity sha512-FrYlzZRVXP2vuVwd7Nc2dlK+iZk4g6IaT1Ib8Z6vU5Kkwlt83FJIPJ2UUFABf3bF5big0wkk8ZUihWxE4Nzdng== + dependencies: + "@jimp/core" "^0.6.8" + core-js "^2.5.7" + +"@jimp/gif@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/gif/-/gif-0.6.8.tgz" + integrity sha512-yyOlujjQcgz9zkjM5ihZDEppn9d1brJ7jQHP5rAKmqep0G7FU1D0AKcV+Ql18RhuI/CgWs10wAVcrQpmLnu4Yw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + omggif "^1.0.9" + +"@jimp/jpeg@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.6.8.tgz" + integrity sha512-rGtXbYpFXAn471qLpTGvhbBMNHJo5KiufN+vC5AWyufntmkt5f0Ox2Cx4ijuBMDtirZchxbMLtrfGjznS4L/ew== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + jpeg-js "^0.3.4" + +"@jimp/plugin-blit@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.6.8.tgz" + integrity sha512-7Tl6YpKTSpvwQbnGNhsfX2zyl3jRVVopd276Y2hF2zpDz9Bycow7NdfNU/4Nx1jaf96X6uWOtSVINcQ7rGd47w== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-blur@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.6.8.tgz" + integrity sha512-NpZCMKxXHLDQsX9zPlWtpMA660DQStY6/z8ZetyxCDbqrLe9YCXpeR4MNhdJdABIiwTm1W5FyFF4kp81PHJx3Q== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-color@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.6.8.tgz" + integrity sha512-jjFyU0zNmGOH2rjzHuOMU4kaia0oo82s/7UYfn5h7OUkmUZTd6Do3ZSK1PiXA7KR+s4B76/Omm6Doh/0SGb7BQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + tinycolor2 "^1.4.1" + +"@jimp/plugin-contain@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.6.8.tgz" + integrity sha512-p/P2wCXhAzbmEgXvGsvmxLmbz45feF6VpR4m9suPSOr8PC/i/XvTklTqYEUidYYAft4vHgsYJdS74HKSMnH8lw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-cover@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.6.8.tgz" + integrity sha512-2PvWgk+PJfRsfWDI1G8Fpjrsu0ZlpNyZxO2+fqWlVo6y/y2gP4v08FqvbkcqSjNlOu2IDWIFXpgyU0sTINWZLg== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-crop@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.6.8.tgz" + integrity sha512-CbrcpWE2xxPK1n/JoTXzhRUhP4mO07mTWaSavenCg664oQl/9XCtL+A0FekuNHzIvn4myEqvkiTwN7FsbunS/Q== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-displace@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.6.8.tgz" + integrity sha512-RmV2bPxoPE6mrPxtYSPtHxm2cGwBQr5a2p+9gH6SPy+eUMrbGjbvjwKNfXWUYD0leML+Pt5XOmAS9pIROmuruQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-dither@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.6.8.tgz" + integrity sha512-x6V/qjxe+xypjpQm7GbiMNqci1EW5UizrcebOhHr8AHijOEqHd2hjXh5f6QIGfrkTFelc4/jzq1UyCsYntqz9Q== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-flip@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.6.8.tgz" + integrity sha512-4il6Da6G39s9MyWBEee4jztEOUGJ40E6OlPjkMrdpDNvge6hYEAB31BczTYBP/CEY74j4LDSoY5LbcU4kv06yA== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-gaussian@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.6.8.tgz" + integrity sha512-pVOblmjv7stZjsqloi4YzHVwAPXKGdNaHPhp4KP4vj41qtc6Hxd9z/+VWGYRTunMFac84gUToe0UKIXd6GhoKw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-invert@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.6.8.tgz" + integrity sha512-11zuLiXDHr6tFv4U8aieXqNXQEKbDbSBG/h+X62gGTNFpyn8EVPpncHhOqrAFtZUaPibBqMFlNJ15SzwC7ExsQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-mask@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.6.8.tgz" + integrity sha512-hZJ0OiKGJyv7hDSATwJDkunB1Ie80xJnONMgpUuUseteK45YeYNBOiZVUe8vum8QI1UwavgBzcvQ9u4fcgXc9g== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-normalize@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.6.8.tgz" + integrity sha512-Q4oYhU+sSyTJI7pMZlg9/mYh68ujLfOxXzQGEXuw0sHGoGQs3B0Jw7jmzGa6pIS06Hup5hD2Zuh1ppvMdjJBfQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-print@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.6.8.tgz" + integrity sha512-2aokejGn4Drv1FesnZGqh5KEq0FQtR0drlmtyZrBH+r9cx7hh0Qgf4D1BOTDEgXkfSSngjGRjKKRW/fwOrVXYw== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + load-bmfont "^1.4.0" + +"@jimp/plugin-resize@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.6.8.tgz" + integrity sha512-27nPh8L1YWsxtfmV/+Ub5dOTpXyC0HMF2cu52RQSCYxr+Lm1+23dJF70AF1poUbUe+FWXphwuUxQzjBJza9UoA== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-rotate@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.6.8.tgz" + integrity sha512-GbjETvL05BDoLdszNUV4Y0yLkHf177MnqGqilA113LIvx9aD0FtUopGXYfRGVvmtTOTouoaGJUc+K6qngvKxww== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugin-scale@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.6.8.tgz" + integrity sha512-GzIYWR/oCUK2jAwku23zt19V1ssaEU4pL0x2XsLNKuuJEU6DvEytJyTMXCE7OLG/MpDBQcQclJKHgiyQm5gIOQ== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + +"@jimp/plugins@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.6.8.tgz" + integrity sha512-fMcTI72Vn/Lz6JftezTURmyP5ml/xGMe0Ljx2KRJ85IWyP33vDmGIUuutFiBEbh2+y7lRT+aTSmjs0QGa/xTmQ== + dependencies: + "@jimp/plugin-blit" "^0.6.8" + "@jimp/plugin-blur" "^0.6.8" + "@jimp/plugin-color" "^0.6.8" + "@jimp/plugin-contain" "^0.6.8" + "@jimp/plugin-cover" "^0.6.8" + "@jimp/plugin-crop" "^0.6.8" + "@jimp/plugin-displace" "^0.6.8" + "@jimp/plugin-dither" "^0.6.8" + "@jimp/plugin-flip" "^0.6.8" + "@jimp/plugin-gaussian" "^0.6.8" + "@jimp/plugin-invert" "^0.6.8" + "@jimp/plugin-mask" "^0.6.8" + "@jimp/plugin-normalize" "^0.6.8" + "@jimp/plugin-print" "^0.6.8" + "@jimp/plugin-resize" "^0.6.8" + "@jimp/plugin-rotate" "^0.6.8" + "@jimp/plugin-scale" "^0.6.8" + core-js "^2.5.7" + timm "^1.6.1" + +"@jimp/png@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/png/-/png-0.6.8.tgz" + integrity sha512-JHHg/BZ7KDtHQrcG+a7fztw45rdf7okL/YwkN4qU5FH7Fcrp41nX5QnRviDtD9hN+GaNC7kvjvcqRAxW25qjew== + dependencies: + "@jimp/utils" "^0.6.8" + core-js "^2.5.7" + pngjs "^3.3.3" + +"@jimp/tiff@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.6.8.tgz" + integrity sha512-iWHbxd+0IKWdJyJ0HhoJCGYmtjPBOusz1z1HT/DnpePs/Lo3TO4d9ALXqYfUkyG74ZK5jULZ69KLtwuhuJz1bg== + dependencies: + core-js "^2.5.7" + utif "^2.0.1" + +"@jimp/types@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/types/-/types-0.6.8.tgz" + integrity sha512-vCZ/Cp2osy69VP21XOBACfHI5HeR60Rfd4Jidj4W73UL+HrFWOtyQiJ7hlToyu1vI5mR/NsUQpzyQvz56ADm5A== + dependencies: + "@jimp/bmp" "^0.6.8" + "@jimp/gif" "^0.6.8" + "@jimp/jpeg" "^0.6.8" + "@jimp/png" "^0.6.8" + "@jimp/tiff" "^0.6.8" + core-js "^2.5.7" + timm "^1.6.1" + +"@jimp/utils@^0.6.8": + version "0.6.8" + resolved "https://registry.npmjs.org/@jimp/utils/-/utils-0.6.8.tgz" + integrity sha512-7RDfxQ2C/rarNG9iso5vmnKQbcvlQjBIlF/p7/uYj72WeZgVCB+5t1fFBKJSU4WhniHX4jUMijK+wYGE3Y3bGw== + dependencies: + core-js "^2.5.7" + +"@octokit/auth-token@^2.4.0": + version "2.4.2" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz" + integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== + dependencies: + "@octokit/types" "^5.0.0" + +"@octokit/core@^3.0.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@octokit/core/-/core-3.1.2.tgz" + integrity sha512-AInOFULmwOa7+NFi9F8DlDkm5qtZVmDQayi7TUgChE3yeIGPq0Y+6cAEXPexQ3Ea+uZy66hKEazR7DJyU+4wfw== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/graphql" "^4.3.1" + "@octokit/request" "^5.4.0" + "@octokit/types" "^5.0.0" + before-after-hook "^2.1.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.6" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.6.tgz" + integrity sha512-7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ== + dependencies: + "@octokit/types" "^5.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.3.1": + version "4.5.6" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.6.tgz" + integrity sha512-Rry+unqKTa3svswT2ZAuqenpLrzJd+JTv89LTeVa5UM/5OX8o4KTkPL7/1ABq4f/ZkELb0XEK/2IEoYwykcLXg== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/plugin-paginate-rest@^2.2.0": + version "2.4.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.4.0.tgz" + integrity sha512-YT6Klz3LLH6/nNgi0pheJnUmTFW4kVnxGft+v8Itc41IIcjl7y1C8TatmKQBbCSuTSNFXO5pCENnqg6sjwpJhg== + dependencies: + "@octokit/types" "^5.5.0" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz" + integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== + +"@octokit/plugin-rest-endpoint-methods@4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.0.tgz" + integrity sha512-1/qn1q1C1hGz6W/iEDm9DoyNoG/xdFDt78E3eZ5hHeUfJTLJgyAMdj9chL/cNBHjcjd+FH5aO1x0VCqR2RE0mw== + dependencies: + "@octokit/types" "^5.5.0" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.0": + version "2.0.2" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz" + integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + dependencies: + "@octokit/types" "^5.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.3.0", "@octokit/request@^5.4.0": + version "5.4.9" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.9.tgz" + integrity sha512-CzwVvRyimIM1h2n9pLVYfTDmX9m+KHSgCpqPsY8F1NdEK8IaWqXhSBXsdjOBFZSpEcxNEeg4p0UO9cQ8EnOCLA== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^5.0.0" + deprecation "^2.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" + once "^1.4.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.0.6": + version "18.0.6" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.0.6.tgz" + integrity sha512-ES4lZBKPJMX/yUoQjAZiyFjei9pJ4lTTfb9k7OtYoUzKPDLl/M8jiHqt6qeSauyU4eZGLw0sgP1WiQl9FYeM5w== + dependencies: + "@octokit/core" "^3.0.0" + "@octokit/plugin-paginate-rest" "^2.2.0" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "4.2.0" + +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1", "@octokit/types@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz" + integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== + dependencies: + "@types/node" ">= 8" + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/cordova@^0.0.34": + version "0.0.34" + resolved "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz" + integrity sha1-6nrd907Ow9dimCegw54smt3HPQQ= + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/filesystem@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz" + integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== + dependencies: + "@types/filewriter" "*" + +"@types/filewriter@*": + version "0.0.28" + resolved "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz" + integrity sha1-wFTor02d11205jq8dviFFocU1LM= + +"@types/json-schema@^7.0.3": + version "7.0.4" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + +"@types/node@>= 8": + version "14.11.2" + resolved "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz" + integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@typescript-eslint/eslint-plugin@3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.1.tgz" + integrity sha512-RxGldRQD3hgOK2xtBfNfA5MMV3rn5gVChe+MIf14hKm51jO2urqF64xOyVrGtzThkrd4rS1Kihqx2nkSxkXHvA== + dependencies: + "@typescript-eslint/experimental-utils" "3.0.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.1.tgz" + integrity sha512-GdwOVz80MOWxbc/br1DC30eeqlxfpVzexHgHtf3L0hcbOu1xAs1wSCNcaBTLMOMZbh1gj/cKZt0eB207FxWfFA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "3.0.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.0.1.tgz" + integrity sha512-Pn2tDmOc4Ri93VQnT70W0pqQr6i/pEZqIPXfWXm4RuiIprL0t6SG13ViVXHgfScknL2Fm2G4IqXhUzxSRCWXCw== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "3.0.1" + "@typescript-eslint/typescript-estree" "3.0.1" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.1.tgz" + integrity sha512-FrbMdgVCeIGHKaP9OYTttFTlF8Ds7AkjMca2GzYCE7pVch10PAJc1mmAFt+DfQPgu/2TrLAprg2vI0PK/WTdcg== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn-walk@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz" + integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== + +acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.5.1" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz" + integrity sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0: + version "6.12.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +any-base@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" + integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz" + integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== + +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz" + integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= + dependencies: + file-type "^4.2.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assets@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/assets/-/assets-3.0.1.tgz" + integrity sha512-fTyLNf/9V24y5zO83f4DAEuvaKj7MWBixbnqdZneAhsv1r21yQ/6ogZfvXHmphJAHsz4DhuOwHeJKVbGqqvk0Q== + dependencies: + async "^2.5.0" + bluebird "^3.4.6" + calipers "^2.0.0" + calipers-gif "^2.0.0" + calipers-jpeg "^2.0.0" + calipers-png "^2.0.0" + calipers-svg "^2.0.0" + calipers-webp "^2.0.0" + glob "^7.0.6" + lodash "^4.15.0" + mime "^2.4.0" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz" + integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.5.0: + version "2.6.3" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +async@~0.2.10: + version "0.2.10" + resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz" + integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.4.3, autoprefixer@^9.4.7, autoprefixer@^9.6.1: + version "9.7.6" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.6.tgz" + integrity sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ== + dependencies: + browserslist "^4.11.1" + caniuse-lite "^1.0.30001039" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.27" + postcss-value-parser "^4.0.3" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0, babel-core@^6.26.3: + version "6.26.3" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^8.0.4: + version "8.1.0" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-closure-elimination@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/babel-plugin-closure-elimination/-/babel-plugin-closure-elimination-1.3.0.tgz" + integrity sha512-ClKuSxKLLNhe69bvTMuONDI0dQDW49lXB2qtQyyKCzvwegRGel/q4/e+1EoDNDN97Hf1QkxGMbzpAGPmU4Tfjw== + +babel-plugin-console-source@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/babel-plugin-console-source/-/babel-plugin-console-source-2.0.4.tgz" + integrity sha512-OGhrdhuMjiEW0Ma0P9e2B4dFddCpJ/xN/RRaM/4wwDLl+6ZKf+Xd77FtVjpNeDzNRNk8wjRdStA4hpZizXzl1g== + +babel-plugin-danger-remove-unused-import@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/babel-plugin-danger-remove-unused-import/-/babel-plugin-danger-remove-unused-import-1.1.2.tgz" + integrity sha512-3bNmVAaakP3b1aROj7O3bOWj2kBa85sZR5naZ3Rn8L9buiZaAyZLgjfrPDL3zhX4wySOA5jrTm/wSmJPsMm3cg== + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-runtime@^7.0.0-beta.3: + version "7.0.0-beta.3" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-7.0.0-beta.3.tgz" + integrity sha512-jlzZ8RACjt0QGxq+wqsw5bCQE9RcUyWpw987mDY3GYxTpOQT2xoyNoG++oVCHzr/nACLBIprfVBNvv/If1ZYcg== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +before-after-hook@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-build@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz" + integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== + dependencies: + decompress "^4.0.0" + download "^6.2.2" + execa "^0.7.0" + p-map-series "^1.0.0" + tempfile "^2.0.0" + +bin-check@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz" + integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== + dependencies: + execa "^0.7.0" + executable "^4.1.0" + +bin-version-check@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz" + integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== + dependencies: + bin-version "^3.0.0" + semver "^5.6.0" + semver-truncate "^1.1.2" + +bin-version@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz" + integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== + dependencies: + execa "^1.0.0" + find-versions "^3.0.0" + +bin-wrapper@^4.0.0, bin-wrapper@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz" + integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== + dependencies: + bin-check "^4.1.0" + bin-version-check "^4.0.0" + download "^7.1.0" + import-lazy "^3.1.0" + os-filter-obj "^2.0.0" + pify "^4.0.1" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bluebird@3.x.x, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bmp-js@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" + integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz" + integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz" + integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.2" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.6.4, browserslist@^4.8.5, browserslist@^4.9.1: + version "4.11.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz" + integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== + dependencies: + caniuse-lite "^1.0.30001038" + electron-to-chromium "^1.3.390" + node-releases "^1.1.53" + pkg-up "^2.0.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.1.0, buffer@^5.2.0, buffer@^5.2.1: + version "5.6.0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz" + integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +calipers-gif@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-gif/-/calipers-gif-2.0.0.tgz" + integrity sha1-te7+wwZKd8bc29W9xRc1oBuv3Dc= + dependencies: + bluebird "3.x.x" + +calipers-jpeg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-jpeg/-/calipers-jpeg-2.0.0.tgz" + integrity sha1-BtVqU/YnF92AnLlWz2RCPOaTRls= + dependencies: + bluebird "3.x.x" + +calipers-png@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-png/-/calipers-png-2.0.0.tgz" + integrity sha1-HQ0g5cGuX3m3TVKGoul/Wbtwtlg= + dependencies: + bluebird "3.x.x" + +calipers-svg@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/calipers-svg/-/calipers-svg-2.0.1.tgz" + integrity sha512-3PROqHARmj8wWudUC7DzXm1+mSocqgY7jNuehFNHgrUVrKf8o7MqDjS92vJz5LvZsAofJsoAFMajkqwbxBROSQ== + dependencies: + bluebird "3.x.x" + +calipers-webp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/calipers-webp/-/calipers-webp-2.0.0.tgz" + integrity sha1-4Sbs4vhM1xd5YSv6KyZTzZXOp3o= + dependencies: + bluebird "3.x.x" + +calipers@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/calipers/-/calipers-2.0.1.tgz" + integrity sha512-AP4Ui2Z8fZf69d8Dx4cfJgPjQHY3m+QXGFCaAGu8pfNQjyajkosS+Kkf1n6pQDMZcelN5h3MdcjweUqxcsS4pg== + dependencies: + bluebird "3.x.x" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001038, caniuse-lite@^1.0.30001039: + version "1.0.30001041" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001041.tgz" + integrity sha512-fqDtRCApddNrQuBxBS7kEiSGdBsgO4wiVw4G/IClfqzfhW45MbTumfN4cuUJGTM0YGFNn97DCXPJ683PS6zwvA== + +caw@^2.0.0, caw@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz" + integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== + dependencies: + get-proxy "^2.0.0" + isurl "^1.0.0-alpha5" + tunnel-agent "^0.6.0" + url-to-options "^1.0.1" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.4.0: + version "3.4.1" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz" + integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-dependency-plugin@^5.0.2: + version "5.2.0" + resolved "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz" + integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== + +circular-json@^0.5.9: + version "0.5.9" + resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz" + integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.2.x: + version "4.2.3" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +clipboard-copy@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/clipboard-copy/-/clipboard-copy-3.1.0.tgz" + integrity sha512-Xsu1NddBXB89IUauda5BIq3Zq73UWkjkaQlPQbLNvNsd5WBMnTWPNKYR6HGaySOxGYZ+BKxP2E9X4ElnI3yiPA== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3, color-name@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +colors@^1.3.3: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.18.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commander@~2.8.1: + version "2.8.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" + integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz" + integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.3, content-disposition@^0.5.2: + version "0.5.3" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.5.1, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.6.2: + version "3.6.5" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + dependencies: + browserslist "^4.8.5" + semver "7.0.0" + +core-js@3: + version "3.6.5" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== + +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7: + version "2.6.11" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@6.0.5, cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-0.9.1.tgz" + integrity sha1-LhqgDOfjDvLGp6SzAKCAp8l54Nw= + dependencies: + csso "1.3.x" + loader-utils "~0.2.2" + source-map "~0.1.38" + +css-mqpacker@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-7.0.0.tgz" + integrity sha512-temVrWS+sB4uocE2quhW8ru/KguDmGhCU7zN213KxtDvWOH3WS/ZUStfpF4fdCT7W8fPpFrQdWRFqtFtPPfBLA== + dependencies: + minimist "^1.2.0" + postcss "^7.0.0" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-advanced@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-4.0.7.tgz" + integrity sha512-j1O5/DQnaAqEyFFQfC+Z/vRlLXL3LxJHN+lvsfYqr7KgPH74t69+Rsy2yXkovWNaJjZYBpdz2Fj8ab2nH7pZXw== + dependencies: + autoprefixer "^9.4.7" + cssnano-preset-default "^4.0.7" + postcss-discard-unused "^4.0.1" + postcss-merge-idents "^4.0.1" + postcss-reduce-idents "^4.0.2" + postcss-zindex "^4.0.1" + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@1.3.x: + version "1.3.12" + resolved "https://registry.npmjs.org/csso/-/csso-1.3.12.tgz" + integrity sha1-/GKGlKLTiTiqrEmWdTIY/TEc254= + +csso@^4.0.2: + version "4.0.3" + resolved "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz" + integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + dependencies: + css-tree "1.0.0-alpha.39" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +debounce-promise@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz" + integrity sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz" + integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.0.0, decompress@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deep-scope-analyser@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/deep-scope-analyser/-/deep-scope-analyser-1.7.0.tgz" + integrity sha512-rl5Dmt2IZkFpZo6XbEY1zG8st2Wpq8Pi/dV2gz8ZF6BDYt3fnor2JNxHwdO1WLo0k6JbmYp0x8MNy8kE4l1NtA== + dependencies: + esrecurse "^4.2.1" + estraverse "^4.2.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +download@^6.2.2: + version "6.2.5" + resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz" + integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== + dependencies: + caw "^2.0.0" + content-disposition "^0.5.2" + decompress "^4.0.0" + ext-name "^5.0.0" + file-type "5.2.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^7.0.0" + make-dir "^1.0.0" + p-event "^1.0.0" + pify "^3.0.0" + +download@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/download/-/download-7.1.0.tgz" + integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== + dependencies: + archive-type "^4.0.0" + caw "^2.0.1" + content-disposition "^0.5.2" + decompress "^4.2.0" + ext-name "^5.0.0" + file-type "^8.1.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^8.3.1" + make-dir "^1.2.0" + p-event "^2.1.0" + pify "^3.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.390: + version "1.3.403" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.403.tgz" + integrity sha512-JaoxV4RzdBAZOnsF4dAlZ2ijJW72MbqO5lNfOBHUWiBQl3Rwe+mk2RCUMrRI3rSClLJ8HSNQNqcry12H+0ZjFw== + +elliptic@^6.0.0, elliptic@^6.5.2: + version "6.5.3" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +email-validator@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz" + integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +enhanced-resolve@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-templates@^0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz" + integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ= + dependencies: + recast "~0.11.12" + through "~2.3.6" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-config-prettier@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz" + integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== + dependencies: + get-stdin "^6.0.0" + +eslint-plugin-prettier@3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz" + integrity sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-7.1.0.tgz" + integrity sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + eslint-visitor-keys "^1.1.0" + espree "^7.0.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.14" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz" + integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +events@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/events/-/events-3.1.0.tgz" + integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +executable@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +exif-parser@^0.1.12: + version "0.1.12" + resolved "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" + integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +express@^4.16.3: + version "4.17.1" + resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastdom@^1.0.8: + version "1.0.9" + resolved "https://registry.npmjs.org/fastdom/-/fastdom-1.0.9.tgz" + integrity sha512-SSp4fbVzu8JkkG01NUX+0iOwe9M5PN3MGIQ84txLf4TkkJG4q30khkzumKgi4hUqO1+jX6wLHfnCPoZ6eSZ6Tg== + dependencies: + strictdom "^1.0.1" + +faster.js@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/faster.js/-/faster.js-1.1.1.tgz" + integrity sha512-vPThNSLL/E1f7cLHd9yuayxZR82o/Iic4S5ZY45iY5AgBLNIlr3b3c+VpDjoYqjY9a9C/FQVUQy9oTILVP7X0g== + +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^0.8.1: + version "0.8.5" + resolved "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz" + integrity sha1-knXQMf54DyfUf19K8CvUNxPMFRs= + dependencies: + loader-utils "~0.2.5" + +file-type@5.2.0, file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz" + integrity sha1-LdvqfHP/42No365J3DOMBYwritY= + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz" + integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + +file-type@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz" + integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== + +file-type@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" + integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz" + integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= + +filenamify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz" + integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-versions@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + +findup-sync@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0, flatted@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0, from2@^2.1.1: + version "2.3.0" + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-proxy@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz" + integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== + dependencies: + npm-conf "^1.1.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-all@^3.1.0: + version "3.2.1" + resolved "https://registry.npmjs.org/glob-all/-/glob-all-3.2.1.tgz" + integrity sha512-x877rVkzB3ipid577QOp+eQCR6M5ZyiwrtaYgrX/z3EThaSPFtLDwBXFHc3sH1cG0R0vFYI5SRYeWMMSEyXkUw== + dependencies: + glob "^7.1.2" + yargs "^15.3.1" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.5, glob@^7.0.6, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.npmjs.org/global/-/global-4.3.2.tgz" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +gonzales-pe@^4.2.3: + version "4.3.0" + resolved "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz" + integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== + dependencies: + minimist "^1.2.5" + +got@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +got@^8.3.1: + version "8.3.2" + resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.10, graceful-fs@^4.1.15, graceful-fs@^4.1.2: + version "4.2.3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +graceful-fs@^4.1.11: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +howler@^2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/howler/-/howler-2.1.3.tgz" + integrity sha512-PSGbOi1EYgw80C5UQbxtJM7TmzD+giJunIMBYyH3RVzHZx2fZLYBoes0SpVVHi/SFa1GoNtgXj/j6I7NOKYBxQ== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-loader@^0.5.5: + version "0.5.5" + resolved "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz" + integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog== + dependencies: + es6-templates "^0.2.3" + fastparse "^1.1.1" + html-minifier "^3.5.8" + loader-utils "^1.1.0" + object-assign "^4.1.1" + +html-minifier@^3.5.8: + version "3.5.21" + resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-errors@1.7.2, http-errors@~1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-loader@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/ignore-loader/-/ignore-loader-0.1.2.tgz" + integrity sha1-2B8kA3bQuk8Nd4lyw60lh0EXpGM= + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +imagemin-mozjpeg@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz" + integrity sha512-+EciPiIjCb8JWjQNr1q8sYWYf7GDCNDxPYnkD11TNIjjWNzaV+oTg4DpOPQjl5ZX/KRCPMEgS79zLYAQzLitIA== + dependencies: + execa "^1.0.0" + is-jpg "^2.0.0" + mozjpeg "^6.0.0" + +imagemin-pngquant@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-8.0.0.tgz" + integrity sha512-PVq0diOxO+Zyq/zlMCz2Pfu6mVLHgiT1GpW702OwVlnej+NhS6ZQegYi3OFEDW8d7GxouyR5e8R+t53SMciOeg== + dependencies: + execa "^1.0.0" + is-png "^2.0.0" + is-stream "^2.0.0" + ow "^0.13.2" + pngquant-bin "^5.0.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz" + integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== + +import-local@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inquirer@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz" + integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +interpret@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz" + integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz" + integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-jpg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz" + integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= + +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz" + integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-png@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-png/-/is-png-2.0.0.tgz" + integrity sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g== + +is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jimp@^0.6.1: + version "0.6.8" + resolved "https://registry.npmjs.org/jimp/-/jimp-0.6.8.tgz" + integrity sha512-F7emeG7Hp61IM8VFbNvWENLTuHe0ghizWPuP4JS9ujx2r5mCVYEd/zdaz6M2M42ZdN41blxPajLWl9FXo7Mr2Q== + dependencies: + "@jimp/custom" "^0.6.8" + "@jimp/plugins" "^0.6.8" + "@jimp/types" "^0.6.8" + core-js "^2.5.7" + regenerator-runtime "^0.13.3" + +jpeg-js@^0.3.4: + version "0.3.7" + resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz" + integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== + +js-base64@^2.1.9: + version "2.5.2" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz" + integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.13.1, js-yaml@^3.4.2: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +known-css-properties@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.11.0.tgz" + integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +load-bmfont@^1.3.1, load-bmfont@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz" + integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^0.2.5, loader-utils@~0.2.2, loader-utils@~0.2.3, loader-utils@~0.2.5: + version "0.2.17" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.0, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: + version "4.17.15" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +logalot@^2.0.0, logalot@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz" + integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +logrocket@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/logrocket/-/logrocket-1.0.7.tgz" + integrity sha512-v6HWEQIsyG+3FkldB7vIAgHh7/qpsiz2Br4bLK5SHBvjqRrHs/Fp+Jr8oiA2GYq0UurAtCu51U8SWft5+OCKtg== + +longest@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz" + integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz" + integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + +make-dir@^1.0.0, make-dir@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/markdown-loader/-/markdown-loader-4.0.0.tgz" + integrity sha512-9BCm8iyLF4AVYtjtybOTg8cTcpWYKsDGWWhsc7XaJlXQiddo3ztbZxLPJ28pmCxFI1BlMkT1wDVav1chPjTpdA== + dependencies: + loader-utils "^1.1.0" + marked "^0.5.0" + +marked@^0.5.0: + version "0.5.2" + resolved "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz" + integrity sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA== + +match-all@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/match-all/-/match-all-1.2.5.tgz" + integrity sha512-KW4trRDMYbVkAKZ1J655vh0931mk3XM1lIJ480TXUL3KBrOsZ6WpryYJELonvtXC1O4erLYB069uHidLkswbjQ== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.0, memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.43.0, mime-db@^1.28.0: + version "1.43.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== + +mime-types@~2.1.24: + version "2.1.26" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + dependencies: + mime-db "1.43.0" + +mime@1.6.0, mime@^1.3.4: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.0: + version "2.4.4" + resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +mozjpeg@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/mozjpeg/-/mozjpeg-6.0.1.tgz" + integrity sha512-9Z59pJMi8ni+IUvSH5xQwK5tNLw7p3dwDNCZ3o1xE+of3G5Hc/yOz6Ue/YuLiBXU3ZB5oaHPURyPdqfBX/QYJA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.1.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^1.1.53: + version "1.1.53" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz" + integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-conf@^1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +omggif@^1.0.9: + version "1.0.10" + resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz" + integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-filter-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz" + integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== + dependencies: + arch "^2.1.0" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +ow@^0.13.2: + version "0.13.2" + resolved "https://registry.npmjs.org/ow/-/ow-0.13.2.tgz" + integrity sha512-9wvr+q+ZTDRvXDjL6eDOdFe5WUl/wa5sntf9kAolxqSpkBqaIObwLgFCGXSJASFw+YciXnOVtDWpxXa9cqV94A== + dependencies: + type-fest "^0.5.1" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-event@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz" + integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= + dependencies: + p-timeout "^1.1.1" + +p-event@^2.1.0: + version "2.3.1" + resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz" + integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= + dependencies: + p-reduce "^1.0.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@^1.0.5, pako@~1.0.5: + version "1.0.11" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.5" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz" + integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz" + integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + +parse-headers@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz" + integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + +phonegap-plugin-mobile-accessibility@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/phonegap-plugin-mobile-accessibility/-/phonegap-plugin-mobile-accessibility-1.0.5.tgz" + integrity sha1-lah1TRJ1CLxuGuJZpTznZYNurAM= + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz" + integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + dependencies: + pngjs "^3.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pngjs@^3.0.0, pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +pngquant-bin@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-5.0.2.tgz" + integrity sha512-OLdT+4JZx5BqE1CFJkrvomYV0aSsv6x2Bba+aWaVc0PMfWlE+ZByNKYAdKeIqsM4uvW1HOSEHnf8KcOnykPNxA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.1" + execa "^0.10.0" + logalot "^2.0.0" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-assets@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-assets/-/postcss-assets-5.0.0.tgz" + integrity sha1-9yHQfTOWBftYQU6fac8FQBxU5wk= + dependencies: + assets "^3.0.0" + bluebird "^3.5.0" + postcss "^6.0.10" + postcss-functions "^3.0.0" + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^6.0.2" + +postcss-calc@^7.0.1: + version "7.0.2" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz" + integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-discard-unused@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-4.0.1.tgz" + integrity sha512-/3vq4LU0bLH2Lj4NYN7BTf2caly0flUB7Xtrk9a5K3yLuXMkHMqMO/x3sDq8W2b1eQFSCyY0IVz2L+0HP8kUUA== + dependencies: + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz" + integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== + dependencies: + postcss "^7.0.2" + +postcss-functions@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz" + integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= + dependencies: + glob "^7.1.2" + object-assign "^4.1.1" + postcss "^6.0.9" + postcss-value-parser "^3.3.0" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz" + integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== + dependencies: + lodash.template "^4.5.0" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-idents@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-4.0.1.tgz" + integrity sha512-43S/VNdF6II0NZ31YxcvNYq4gfURlPAAsJW/z84avBXQCaP4I4qRHUH18slW/SOlJbcxxCobflPNUApYDddS7A== + dependencies: + cssnano-util-same-parent "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@^6.5.0: + version "6.7.0" + resolved "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + autoprefixer "^9.6.1" + browserslist "^4.6.4" + caniuse-lite "^1.0.30000981" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.4.0" + postcss "^7.0.17" + postcss-attribute-case-insensitive "^4.0.1" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.3" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.8" + postcss-custom-properties "^8.0.11" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-idents@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-4.0.2.tgz" + integrity sha512-Tz70Ri10TclPoCtFfftjFVddx3fZGUkr0dEDbIEfbYhFUOFQZZ77TEqRrU0e6TvAvF+Wa5VVzYTpFpq0uwFFzw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-round-subpixels@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/postcss-round-subpixels/-/postcss-round-subpixels-1.2.0.tgz" + integrity sha1-4h1qxZUuGF+b3ACLlPAE/lCdChE= + dependencies: + postcss "^5.0.2" + postcss-value-parser "^3.1.2" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz" + integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-unprefix@^2.1.3: + version "2.1.4" + resolved "https://registry.npmjs.org/postcss-unprefix/-/postcss-unprefix-2.1.4.tgz" + integrity sha512-s+muBiGIMx3RvgPTtPBnSrfvIBHJ2Zx16QZf/VDB/sAxdYP6FIzci8d1gLh0+9psu5W6zVtCbU5micNt6Zh3cg== + dependencies: + autoprefixer "^9.4.3" + known-css-properties "^0.11.0" + normalize-range "^0.1.2" + postcss-selector-parser "^5.0.0" + postcss-value-parser "^3.3.1" + pseudo-classes "^1.0.0" + pseudo-elements "^1.1.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.1.2, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz" + integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-zindex@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-4.0.1.tgz" + integrity sha512-d/8BlQcUdEugZNRM9AdCA2V4fqREUtn/wcixLN3L6ITgc2P/FMcVVYz8QZkhItWT9NB5qr8wuN2dJCE4/+dlrA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss@>=5.0.0: + version "8.2.6" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.6.tgz" + integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + +postcss@^5.0.2: + version "5.2.18" + resolved "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.10, postcss@^6.0.9: + version "6.0.23" + resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.27" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz" + integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.0.4.tgz" + integrity sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w== + +private@^0.1.8, private@~0.1.5: + version "0.1.8" + resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/process/-/process-0.5.2.tgz" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-polyfill@^8.1.0: + version "8.1.3" + resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz" + integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudo-classes@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/pseudo-classes/-/pseudo-classes-1.0.0.tgz" + integrity sha1-YKabZzlcNv8RnE0chuGYF4Uga5Y= + +pseudo-elements@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pseudo-elements/-/pseudo-elements-1.1.0.tgz" + integrity sha1-m6bdisPOHz19NtQ1WqPijQg5Hyg= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +query-string@^6.8.1: + version "6.12.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-6.12.1.tgz" + integrity sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA== + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + +recast@~0.11.12: + version "0.11.23" + resolved "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz" + integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM= + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + dependencies: + "@babel/runtime" "^7.8.4" + private "^0.1.8" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.10.0, resolve@^1.3.2: + version "1.15.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.3: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rusha@^0.8.13: + version "0.8.13" + resolved "https://registry.npmjs.org/rusha/-/rusha-0.8.13.tgz" + integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo= + +rxjs@^6.5.3: + version "6.5.5" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-unused@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/sass-unused/-/sass-unused-0.3.0.tgz" + integrity sha512-fGNcUpDeSFwnN+BTQ251iM77Py8awPXc96vSE3TpvMcgbC90IrohonRb4oxWX/KzHpezkmUddS8/t04R+yIB8w== + dependencies: + glob "^7.0.5" + gonzales-pe "^4.2.3" + +sax@>=0.6.0, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^0.4.0: + version "0.4.7" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5: + version "2.6.5" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +seek-bzip@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz" + integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w= + dependencies: + commander "~2.8.1" + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +semver-truncate@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz" + integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^7.2.1, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-error@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-3.0.0.tgz" + integrity sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A== + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz" + integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= + dependencies: + sort-keys "^1.0.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.1.38: + version "0.1.43" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz" + integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + +strictdom@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strictdom/-/strictdom-1.0.1.tgz" + integrity sha1-GJ3pFkn3PUTVm4Qy76aO+dJllGA= + +string-replace-webpack-plugin@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/string-replace-webpack-plugin/-/string-replace-webpack-plugin-0.1.3.tgz" + integrity sha1-c8ZX51nWbP6Arh4M8JGqJW0OcVw= + dependencies: + async "~0.2.10" + loader-utils "~0.2.3" + optionalDependencies: + css-loader "^0.9.1" + file-loader "^0.8.1" + style-loader "^0.8.3" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@^3.0.1, strip-json-comments@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +style-loader@^0.8.3: + version "0.8.3" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-0.8.3.tgz" + integrity sha1-9Pkut9tjdodI8VBlzWcA9aHIU1c= + dependencies: + loader-utils "^0.2.5" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@6.1.0, supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempfile@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz" + integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= + dependencies: + temp-dir "^1.0.0" + uuid "^3.0.1" + +terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6, through@^2.3.8, through@~2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timm@^1.6.1: + version "1.6.2" + resolved "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz" + integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tinycolor2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz" + integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= + dependencies: + escape-string-regexp "^1.0.2" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +trim@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +tslib@^1.8.1, tslib@^1.9.0: + version "1.13.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz" + integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@3.9.3: + version "3.9.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz" + integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-template-string-loader@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/uglify-template-string-loader/-/uglify-template-string-loader-1.1.1.tgz" + integrity sha512-EHJx8m0aIHlwX5xlJd2xPYIFvLrPkVK5X8zpVxSNTmu7KoT2eSg1TNlwZS+JS65+dwJXC4rC5mc+F4UVe2rckw== + +unbzip2-stream@^1.0.9: + version "1.4.1" + resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.1.tgz" + integrity sha512-sgDYfSDPMsA4Hr2/w7vOlrJBlwzmyakk1+hW8ObLvxSp0LA36LcL2XItGvOT3OSblohSdevMuT8FQjLsqyy4sA== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unused-files-webpack-plugin@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/unused-files-webpack-plugin/-/unused-files-webpack-plugin-3.4.0.tgz" + integrity sha512-cmukKOBdIqaM1pqThY0+jp+mYgCVyzrD8uRbKEucQwIGZcLIRn+gSRiQ7uLjcDd3Zba9NUxVGyYa7lWM4UCGeg== + dependencies: + babel-runtime "^7.0.0-beta.3" + glob-all "^3.1.0" + semver "^5.5.0" + util.promisify "^1.0.0" + warning "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +utif@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" + integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + dependencies: + pako "^1.0.5" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz" + integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" + integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.1: + version "1.7.2" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz" + integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" + +webpack-bundle-analyzer@^3.0.3: + version "3.7.0" + resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.7.0.tgz" + integrity sha512-mETdjZ30a3Yf+NTB/wqTgACK7rAYQl5uxKK0WVTNmF0sM3Uv8s3R58YZMW7Rhu0Lk2Rmuhdj5dcH5Q76zCDVdA== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.15" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-cli@^3.1.0: + version "3.3.11" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz" + integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== + dependencies: + chalk "2.4.2" + cross-spawn "6.0.5" + enhanced-resolve "4.1.0" + findup-sync "3.0.0" + global-modules "2.0.0" + import-local "2.0.0" + interpret "1.2.0" + loader-utils "1.2.3" + supports-color "6.1.0" + v8-compile-cache "2.0.3" + yargs "13.2.4" + +webpack-deep-scope-plugin@^1.6.0: + version "1.6.2" + resolved "https://registry.npmjs.org/webpack-deep-scope-plugin/-/webpack-deep-scope-plugin-1.6.2.tgz" + integrity sha512-S5ZM1i7oTIVPIS1z/Fu41tqFzaXpy8vZnwEDC9I7NLj5XD8GGrDZbDXtG5FCGkHPGxtAzF4O21DKZZ76vpBGzw== + dependencies: + deep-scope-analyser "^1.7.0" + +webpack-plugin-replace@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/webpack-plugin-replace/-/webpack-plugin-replace-1.2.0.tgz" + integrity sha512-1HA3etHpJW55qonJqv84o5w5GY7iqF8fqSHpTWdNwarj1llkkt4jT4QSvYs1hoaU8Lu5akDnq/spHHO5mXwo1w== + +webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-strip-block@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/webpack-strip-block/-/webpack-strip-block-0.2.0.tgz" + integrity sha1-xg1KcD4O7uiJXn8avptf6RRoFHA= + dependencies: + loader-utils "^1.1.0" + +webpack@^4.43.0: + version "4.43.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.1" + webpack-sources "^1.4.1" + +whatwg-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz" + integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== + dependencies: + loader-utils "^1.0.0" + schema-utils "^0.4.0" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^6.0.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xhr@^2.0.1: + version "2.5.0" + resolved "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" + integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + +xml2js@^0.4.5: + version "0.4.23" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml-js@^0.1.3: + version "0.1.5" + resolved "https://registry.npmjs.org/yaml-js/-/yaml-js-0.1.5.tgz" + integrity sha1-oBNpAQs1WNiq7SOUYV39B4D9j6w= + +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@^13.1.0: + version "13.1.2" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.1: + version "18.1.2" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz" + integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@13.2.4: + version "13.2.4" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz" + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" + +yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" + +yarn@^1.22.4: + version "1.22.4" + resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.4.tgz" + integrity sha512-oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA== + +yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yawn-yaml@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/yawn-yaml/-/yawn-yaml-1.5.0.tgz" + integrity sha512-sH2zX9K1QiWhWh9U19pye660qlzrEAd5c4ebw/6lqz17LZw7xYi7nqXlBoVLVtc2FZFXDKiJIsvVcKGYbLVyFQ== + dependencies: + js-yaml "^3.4.2" + lodash "^4.17.11" + yaml-js "^0.1.3"