diff --git a/npm-packages/eslint-config-meteor/index.js b/npm-packages/eslint-config-meteor/index.js index fddc2b7886..3c191d2ebc 100644 --- a/npm-packages/eslint-config-meteor/index.js +++ b/npm-packages/eslint-config-meteor/index.js @@ -25,7 +25,7 @@ module.exports = { 'no-underscore-dangle': [ 'error', { - allow: ['_id', 'ensureIndexAsync'], + allow: ['_id', '_ensureIndex'], }, ], 'object-shorthand': [ diff --git a/npm-packages/meteor-babel/options.js b/npm-packages/meteor-babel/options.js index 83b3bbbf9d..7f3db27945 100644 --- a/npm-packages/meteor-babel/options.js +++ b/npm-packages/meteor-babel/options.js @@ -186,7 +186,21 @@ function getDefaultsForNode8(features) { require("@babel/plugin-syntax-object-rest-spread"), require("@babel/plugin-proposal-object-rest-spread") ); + // TODO [fibers]: instead of removing the code below, consider this comment: + // https://github.com/meteor/meteor/pull/12471/files#r1089610144 + const isFiberDisabled = process.env.DISABLE_FIBERS === '1'; + const ignoreAsyncPlugin = process.env.IGNORE_ASYNC_PLUGIN === '1'; + if (!ignoreAsyncPlugin) { + combined.plugins.push([ + require('./plugins/async-await.js'), + { + // Do not transform `await x` to `Promise.await(x)`, since Node + // 8 has native support for await expressions. + useNativeAsyncAwait: isFiberDisabled, + }, + ]); + } // Enable async generator functions proposal. combined.plugins.push(require("@babel/plugin-proposal-async-generator-functions")); } diff --git a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json index 4d2e9918e8..39b3063082 100644 --- a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json @@ -5,618 +5,382 @@ "version": "7.19.0-beta.1", "dependencies": { "@ampproject/remapping": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", - "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==" + "version": "2.1.1" }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==" + "version": "7.16.7" }, "@babel/compat-data": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.9.tgz", - "integrity": "sha512-p3QjZmMGHDGdpcwEYYWu7i7oJShJvtgMjJeb0W95PPhSm++3lm8YXYOh45Y6iCN9PkZLTZ7CIX5nFrp7pw7TXw==" + "version": "7.14.9" }, "@babel/core": { "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", - "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", "dependencies": { "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" + "version": "7.17.0" }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==" + "version": "7.16.7" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "version": "7.16.7" }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==" + "version": "4.19.1" }, "caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" + "version": "1.0.30001312" }, "electron-to-chromium": { - "version": "1.4.68", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", - "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==" + "version": "1.4.68" }, "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + "version": "2.0.2" } } }, "@babel/generator": { "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", - "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", "dependencies": { "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.5.7" } } }, "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==" + "version": "7.14.5" }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", - "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==" + "version": "7.14.5" }, "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==" + "version": "7.14.5" }, "@babel/helper-create-class-features-plugin": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz", - "integrity": "sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ==" + "version": "7.14.8" }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==" + "version": "7.14.5" }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==" + "version": "0.3.1" }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==" + "version": "7.16.7" }, "@babel/helper-explode-assignable-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", - "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==" + "version": "7.14.5" }, "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==" + "version": "7.14.5" }, "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==" + "version": "7.14.5" }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" + "version": "7.16.7" }, "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==" + "version": "7.14.7" }, "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==" + "version": "7.14.5" }, "@babel/helper-module-transforms": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "dependencies": { "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" + "version": "7.16.7" }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" + "version": "7.16.7" } } }, "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==" + "version": "7.14.5" }, "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + "version": "7.14.5" }, "@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", - "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==" + "version": "7.14.5" }, "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==" + "version": "7.14.5" }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==" + "version": "7.16.7" }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", - "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==" + "version": "7.14.5" }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==" + "version": "7.14.5" }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "version": "7.16.7" }, "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + "version": "7.14.5" }, "@babel/helper-wrap-function": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", - "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==" + "version": "7.14.5" }, "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==" + "version": "7.17.2" }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==" + "version": "7.16.10" }, "@babel/parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==" + "version": "7.17.0" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz", - "integrity": "sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw==" + "version": "7.14.9" }, "@babel/plugin-proposal-class-properties": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==" + "version": "7.16.7" }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==" + "version": "7.17.1" }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==" + "version": "7.16.7" }, "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==" + "version": "7.16.7" }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==" + "version": "7.16.7" }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==" + "version": "7.16.7" }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==" + "version": "7.16.7" }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" + "version": "7.16.7" } } }, "@babel/plugin-proposal-decorators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz", - "integrity": "sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg==" + "version": "7.14.5" }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==" + "version": "7.14.5" }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==" + "version": "7.14.5" }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", - "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==" + "version": "7.14.7" }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==" + "version": "7.14.5" }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==" + "version": "7.14.5" }, "@babel/plugin-syntax-async-generators": { - "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==" + "version": "7.8.4" }, "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "version": "7.12.13" }, "@babel/plugin-syntax-decorators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz", - "integrity": "sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw==" + "version": "7.14.5" }, "@babel/plugin-syntax-dynamic-import": { - "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==" + "version": "7.8.3" }, "@babel/plugin-syntax-jsx": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" } } }, "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "version": "7.10.4" }, "@babel/plugin-syntax-nullish-coalescing-operator": { - "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==" + "version": "7.8.3" }, "@babel/plugin-syntax-object-rest-spread": { - "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==" + "version": "7.8.3" }, "@babel/plugin-syntax-optional-catch-binding": { - "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==" + "version": "7.8.3" }, "@babel/plugin-syntax-optional-chaining": { - "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==" + "version": "7.8.3" }, "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==" + "version": "7.14.5" }, "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", - "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==" + "version": "7.14.5" }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==" + "version": "7.14.5" }, "@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", - "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==" + "version": "7.14.5" }, "@babel/plugin-transform-classes": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz", - "integrity": "sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==" + "version": "7.14.9" }, "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==" + "version": "7.14.5" }, "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==" + "version": "7.14.7" }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==" + "version": "7.14.5" }, "@babel/plugin-transform-for-of": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", - "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==" + "version": "7.14.5" }, "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==" + "version": "7.14.5" }, "@babel/plugin-transform-modules-commonjs": { "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" } } }, "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==" + "version": "7.14.5" }, "@babel/plugin-transform-parameters": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", - "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==" + "version": "7.14.5" }, "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==" + "version": "7.14.5" }, "@babel/plugin-transform-react-display-name": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" } } }, "@babel/plugin-transform-react-jsx": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", - "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==" + "version": "7.16.7" }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" + "version": "7.16.7" }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" } } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==" + "version": "7.16.7" }, "@babel/plugin-transform-react-pure-annotations": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==" + "version": "7.16.7" }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" } } }, "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==" + "version": "7.14.5" }, "@babel/plugin-transform-runtime": { "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", "dependencies": { "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" + "version": "7.16.7" }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==" + "version": "7.14.5" }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==" + "version": "7.14.6" }, "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==" + "version": "7.14.5" }, "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==" + "version": "7.14.5" }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", - "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==" + "version": "7.14.5" }, "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==" + "version": "7.14.5" }, "@babel/preset-react": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.16.7" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "version": "7.16.7" } } }, "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==" + "version": "7.17.2" }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==" + "version": "7.16.7" }, "@babel/traverse": { "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", - "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", "dependencies": { "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==" + "version": "7.16.7" }, "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==" + "version": "7.16.7" }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" + "version": "7.16.7" } } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==" + "version": "7.17.0" }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" + "version": "3.0.5" }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + "version": "1.4.11" }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==" + "version": "0.3.4" }, "@meteorjs/reify": { "version": "https://github.com/meteor/reify/tarball/5078da9d0827cc17741504762f3a7f71c3b01448", @@ -635,14 +399,13 @@ } }, "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + "version": "0.0.50" }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + "version": "6.4.2" + }, + "acorn-dynamic-import": { + "version": "4.0.0" }, "acorn-dynamic-import": { "version": "4.0.0", @@ -650,1049 +413,638 @@ "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" }, "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" + "version": "3.2.3" }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "version": "3.0.0" }, "ansi-styles": { - "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==" + "version": "3.2.1" }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "version": "1.0.10" }, "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "version": "2.0.6" }, "babel-helper-evaluate-path": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz", - "integrity": "sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA==" + "version": "0.5.0" }, "babel-helper-flip-expressions": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz", - "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=" + "version": "0.4.3" }, "babel-helper-is-nodes-equiv": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", - "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=" + "version": "0.0.1" }, "babel-helper-is-void-0": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz", - "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=" + "version": "0.4.3" }, "babel-helper-mark-eval-scopes": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz", - "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=" + "version": "0.4.3" }, "babel-helper-remove-or-void": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz", - "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=" + "version": "0.4.3" }, "babel-helper-to-multiple-sequence-expressions": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz", - "integrity": "sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==" + "version": "0.5.0" }, "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==" + "version": "2.3.3" }, "babel-plugin-minify-builtins": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz", - "integrity": "sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag==" + "version": "0.5.0" }, "babel-plugin-minify-constant-folding": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz", - "integrity": "sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ==" + "version": "0.5.0" }, "babel-plugin-minify-dead-code-elimination": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz", - "integrity": "sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg==" + "version": "0.5.1" }, "babel-plugin-minify-flip-comparisons": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz", - "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=" + "version": "0.4.3" }, "babel-plugin-minify-guarded-expressions": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz", - "integrity": "sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA==" + "version": "0.4.4" }, "babel-plugin-minify-infinity": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz", - "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=" + "version": "0.4.3" }, "babel-plugin-minify-mangle-names": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz", - "integrity": "sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw==" + "version": "0.5.0" }, "babel-plugin-minify-numeric-literals": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz", - "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=" + "version": "0.4.3" }, "babel-plugin-minify-replace": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz", - "integrity": "sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q==" + "version": "0.5.0" }, "babel-plugin-minify-simplify": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz", - "integrity": "sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A==" + "version": "0.5.1" }, "babel-plugin-minify-type-constructors": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz", - "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=" + "version": "0.4.3" }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==" + "version": "0.3.1" }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==" + "version": "0.5.2" }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==" + "version": "0.3.1" }, "babel-plugin-transform-inline-consecutive-adds": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", - "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=" + "version": "0.4.3" }, "babel-plugin-transform-member-expression-literals": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz", - "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=" + "version": "6.9.4" }, "babel-plugin-transform-merge-sibling-variables": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", - "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=" + "version": "6.9.4" }, "babel-plugin-transform-minify-booleans": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz", - "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=" + "version": "6.9.4" }, "babel-plugin-transform-property-literals": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz", - "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=" + "version": "6.9.4" }, "babel-plugin-transform-regexp-constructors": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz", - "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=" + "version": "0.4.3" }, "babel-plugin-transform-remove-console": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz", - "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=" + "version": "6.9.4" }, "babel-plugin-transform-remove-debugger": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz", - "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=" + "version": "6.9.4" }, "babel-plugin-transform-remove-undefined": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz", - "integrity": "sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ==" + "version": "0.5.0" }, "babel-plugin-transform-simplify-comparison-operators": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", - "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=" + "version": "6.9.4" }, "babel-plugin-transform-undefined-to-void": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz", - "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=" + "version": "6.9.4" }, "babel-preset-meteor": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.10.0.tgz", - "integrity": "sha512-bcdNfRCQAjTV42cUcmaG5/ltLZZQLpZajUcP+o0Lr+aLTY/XLNkGfASM5383wdXiAkEFl0sDOXeknnLlQtrmdg==" + "version": "7.10.0" }, "babel-preset-minify": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz", - "integrity": "sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg==" + "version": "0.5.1" }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "version": "1.0.2" }, "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "version": "1.1.11" }, "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + "version": "1.3.1" }, "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==" + "version": "4.16.6" }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "version": "1.0.2" }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "version": "5.3.1" }, "caniuse-lite": { - "version": "1.0.30001248", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz", - "integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==" + "version": "1.0.30001248" }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "version": "2.4.2" }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "4.1.0" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "version": "3.1.0" }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "version": "5.2.0" } } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "version": "1.9.3" }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.3" }, "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + "version": "1.2.2" }, "commander": { - "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==" + "version": "2.20.3" }, "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "version": "0.0.1" }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" + "version": "1.8.0" }, "core-js-compat": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", - "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", "dependencies": { "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==" + "version": "4.19.1" }, "caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" + "version": "1.0.30001312" }, "electron-to-chromium": { - "version": "1.4.68", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", - "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==" + "version": "1.4.68" }, "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + "version": "2.0.2" }, "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + "version": "7.0.0" } } }, "d3": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-4.13.0.tgz", - "integrity": "sha512-l8c4+0SldjVKLaE2WG++EQlqD7mh/dmQjvi2L2lKPadAVC+TbJC4ci7Uk9bRi+To0+ansgsS0iWfPjD7DBy+FQ==" + "version": "4.13.0" }, "d3-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.1.tgz", - "integrity": "sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw==" + "version": "1.2.1" }, "d3-axis": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.8.tgz", - "integrity": "sha1-MacFoLU15ldZ3hQXOjGTMTfxjvo=" + "version": "1.0.8" }, "d3-brush": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.4.tgz", - "integrity": "sha1-AMLyOAGfJPbAoZSibUGhUw/+e8Q=" + "version": "1.0.4" }, "d3-chord": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.4.tgz", - "integrity": "sha1-fexPC6iG9xP+ERxF92NBT290yiw=" + "version": "1.0.4" }, "d3-collection": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.4.tgz", - "integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI=" + "version": "1.0.4" }, "d3-color": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.0.3.tgz", - "integrity": "sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs=" + "version": "1.0.3" }, "d3-dispatch": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.3.tgz", - "integrity": "sha1-RuFJHqqbWMNY/OW+TovtYm54cfg=" + "version": "1.0.3" }, "d3-drag": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.1.tgz", - "integrity": "sha512-Cg8/K2rTtzxzrb0fmnYOUeZHvwa4PHzwXOLZZPwtEs2SKLLKLXeYwZKBB+DlOxUvFmarOnmt//cU4+3US2lyyQ==" + "version": "1.2.1" }, "d3-dsv": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.8.tgz", - "integrity": "sha512-IVCJpQ+YGe3qu6odkPQI0KPqfxkhbP/oM1XhhE/DFiYmcXKfCRub4KXyiuehV1d4drjWVXHUWx4gHqhdZb6n/A==" + "version": "1.0.8" }, "d3-ease": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.3.tgz", - "integrity": "sha1-aL+8NJM4o4DETYrMT7wzBKotjA4=" + "version": "1.0.3" }, "d3-force": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.0.tgz", - "integrity": "sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==" + "version": "1.1.0" }, "d3-format": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.2.2.tgz", - "integrity": "sha512-zH9CfF/3C8zUI47nsiKfD0+AGDEuM8LwBIP7pBVpyR4l/sKkZqITmMtxRp04rwBrlshIZ17XeFAaovN3++wzkw==" + "version": "1.2.2" }, "d3-geo": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.9.1.tgz", - "integrity": "sha512-l9wL/cEQkyZQYXw3xbmLsH3eQ5ij+icNfo4r0GrLa5rOCZR/e/3am45IQ0FvQ5uMsv+77zBRunLc9ufTWSQYFA==" + "version": "1.9.1" }, "d3-hierarchy": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz", - "integrity": "sha1-ochFxC+Eoga88cAcAQmOpN2qeiY=" + "version": "1.1.5" }, "d3-interpolate": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.6.tgz", - "integrity": "sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==" + "version": "1.1.6" }, "d3-path": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.5.tgz", - "integrity": "sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q=" + "version": "1.0.5" }, "d3-polygon": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.3.tgz", - "integrity": "sha1-FoiOkCZGCTPysXllKtN4Ik04LGI=" + "version": "1.0.3" }, "d3-quadtree": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.3.tgz", - "integrity": "sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg=" + "version": "1.0.3" }, "d3-queue": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-3.0.7.tgz", - "integrity": "sha1-yTouVLQXwJWRKdfXP2z31Ckudhg=" + "version": "3.0.7" }, "d3-random": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.0.tgz", - "integrity": "sha1-ZkLlBsb6OmSFldKyRpeIqNElKdM=" + "version": "1.1.0" }, "d3-request": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-request/-/d3-request-1.0.6.tgz", - "integrity": "sha512-FJj8ySY6GYuAJHZMaCQ83xEYE4KbkPkmxZ3Hu6zA1xxG2GD+z6P+Lyp+zjdsHf0xEbp2xcluDI50rCS855EQ6w==" + "version": "1.0.6" }, "d3-scale": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz", - "integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==" + "version": "1.0.7" }, "d3-selection": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.3.0.tgz", - "integrity": "sha512-qgpUOg9tl5CirdqESUAu0t9MU/t3O9klYfGfyKsXEmhyxyzLpzpeh08gaxBUTQw1uXIOkr/30Ut2YRjSSxlmHA==" + "version": "1.3.0" }, "d3-shape": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.2.0.tgz", - "integrity": "sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=" + "version": "1.2.0" }, "d3-time": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.8.tgz", - "integrity": "sha512-YRZkNhphZh3KcnBfitvF3c6E0JOFGikHZ4YqD+Lzv83ZHn1/u6yGenRU1m+KAk9J1GnZMnKcrtfvSktlA1DXNQ==" + "version": "1.0.8" }, "d3-time-format": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.1.tgz", - "integrity": "sha512-8kAkymq2WMfzW7e+s/IUNAtN/y3gZXGRrdGfo6R8NKPAA85UBTxZg5E61bR6nLwjPjj4d3zywSQe1CkYLPFyrw==" + "version": "2.1.1" }, "d3-timer": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.7.tgz", - "integrity": "sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA==" + "version": "1.0.7" }, "d3-transition": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.1.1.tgz", - "integrity": "sha512-xeg8oggyQ+y5eb4J13iDgKIjUcEfIOZs2BqV/eEmXm2twx80wTzJ4tB4vaZ5BKfz7XsI/DFmQL5me6O27/5ykQ==" + "version": "1.1.1" }, "d3-voronoi": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", - "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw=" + "version": "1.1.2" }, "d3-zoom": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.7.1.tgz", - "integrity": "sha512-sZHQ55DGq5BZBFGnRshUT8tm2sfhPHFnOlmPbbwTkAoPeVdRTkB4Xsf9GCY0TSHrTD8PeJPZGmP/TpGicwJDJQ==" + "version": "1.7.1" }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" + "version": "4.3.3" }, "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "version": "1.2.0" }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + "version": "1.1.3" }, "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "version": "1.0.3" }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "version": "3.5.0" }, "electron-to-chromium": { - "version": "1.3.793", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.793.tgz", - "integrity": "sha512-l9NrGV6Mr4ov5mayYPvIWcwklNw5ROmy6rllzz9dCACw9nKE5y+s5uQk+CBJMetxrWZ6QJFsvEfG6WDcH2IGUg==" + "version": "1.3.793" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "7.0.3" }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==" + "version": "1.18.5" }, "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" + "version": "1.2.1" }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "version": "3.1.1" }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "1.0.5" }, "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "version": "4.0.1" }, "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "version": "2.0.2" }, "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "version": "2.0.3" }, "fibers": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.0.tgz", - "integrity": "sha512-UpGv/YAZp7mhKHxDvC1tColrroGRX90sSvh8RMZV9leo+e5+EkRVgCEZPlmXeo3BUNQTZxUaVdLskq1Q2FyCPg==" + "version": "5.0.0" }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "version": "3.0.0" }, "flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==" + "version": "4.1.1" }, "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "version": "1.0.0" }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.1" }, "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "version": "1.0.0-beta.2" }, "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "version": "2.0.5" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" + "version": "1.1.1" }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==" + "version": "7.1.3" }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "version": "11.12.0" }, "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + "version": "1.10.5" }, "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "version": "1.0.3" }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "version": "1.0.1" }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "version": "3.0.0" }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "version": "1.0.2" }, "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "version": "1.2.0" }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "version": "0.4.24" }, "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "version": "1.0.6" }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.4" }, "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" + "version": "1.0.3" }, "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" + "version": "1.0.2" }, "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==" + "version": "1.1.1" }, "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "version": "2.0.5" }, "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + "version": "1.2.3" }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==" + "version": "2.8.1" }, "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" + "version": "1.0.4" }, "is-fullwidth-code-point": { - "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=" + "version": "2.0.0" }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + "version": "2.0.1" }, "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" + "version": "1.0.5" }, "is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==" + "version": "1.2.1" }, "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==" + "version": "1.1.3" }, "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" + "version": "1.0.6" }, "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" + "version": "1.0.4" }, "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "version": "2.0.0" }, "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "version": "4.0.0" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" + "version": "3.13.1" }, "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "version": "2.5.2" }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" + "version": "2.2.0" }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "version": "3.0.0" }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.21" }, "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "version": "4.0.8" }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==" + "version": "2.2.0" }, "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==" + "version": "0.25.7" }, "meteor-babel-helpers": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/meteor-babel-helpers/-/meteor-babel-helpers-0.0.3.tgz", - "integrity": "sha1-8uXZ+HlvvS6JAQI9dpnlsgLqn7A=" + "version": "0.0.3" + }, + "meteor-promise": { + "version": "0.9.0" }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "version": "3.0.4" }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.6" }, "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==" + "version": "0.5.4" }, "mocha": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", - "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==" + "version": "3.2.6" }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.1" }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==" + "version": "4.1.0" }, "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==" + "version": "6.0.0" } } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.2" }, "node-environment-flags": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.1" } } }, "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + "version": "1.1.73" }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + "version": "1.11.0" }, "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "version": "1.1.1" }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" + "version": "4.1.2" }, "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==" + "version": "2.1.2" }, "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "version": "1.4.0" }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "version": "2.3.0" }, "p-locate": { - "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==" + "version": "3.0.0" }, "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "version": "2.2.0" }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "3.0.0" }, "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "version": "1.0.1" }, "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "version": "1.0.7" }, "periscopic": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-2.0.3.tgz", - "integrity": "sha512-FuCZe61mWxQOJAQFEfmt9FjzebRlcpFz8sFPbyaCKtdusPkMEbA9ey0eARnRav5zAhmXznhaQkKGFAPn7X9NUw==" + "version": "2.0.3" }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.0" }, "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==" + "version": "8.1.0" }, "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "version": "1.4.2" }, "regenerate-unicode-properties": { - "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==" + "version": "8.2.0" }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.9" }, "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==" + "version": "0.14.5" }, "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==" + "version": "4.7.1" }, "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + "version": "0.5.2" }, "regjsparser": { "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", "dependencies": { "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "version": "0.5.0" } } }, "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "version": "2.1.1" }, "require-main-filename": { - "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==" + "version": "2.0.0" }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==" + "version": "1.22.0" }, "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + "version": "1.3.3" }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.1.2" }, "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "version": "2.1.2" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.0" }, "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "version": "2.0.0" }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" + "version": "1.0.4" }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.6.1" }, "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "version": "1.4.8" }, "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "version": "1.0.3" }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" + "version": "2.1.1" }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==" + "version": "1.0.4" }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==" + "version": "1.0.4" }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + "version": "4.0.0" }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "version": "2.0.1" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "version": "5.5.0" }, "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "version": "1.0.0" }, "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "version": "2.0.0" }, "typescript": { "version": "4.7.4", @@ -1700,118 +1052,74 @@ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" + "version": "1.0.1" }, "unicode-canonical-property-names-ecmascript": { - "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==" + "version": "1.0.4" }, "unicode-match-property-ecmascript": { - "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==" + "version": "1.0.4" }, "unicode-match-property-value-ecmascript": { - "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==" + "version": "1.2.0" }, "unicode-property-aliases-ecmascript": { - "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==" + "version": "1.1.0" }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "version": "1.3.1" }, "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" + "version": "1.0.2" }, "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "version": "2.0.0" }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" + "version": "1.1.3" }, "wrap-ansi": { "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-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "4.1.0" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "version": "3.1.0" }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "version": "5.2.0" } } }, "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "version": "1.0.2" }, "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + "version": "1.8.0" }, "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "version": "4.0.3" }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "4.1.0" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "version": "3.1.0" }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "version": "5.2.0" } } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==" + "version": "13.1.2" }, "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==" + "version": "1.6.0" } } }, @@ -1826,9 +1134,9 @@ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "semver": { "version": "7.3.8", diff --git a/packages/meteor/helpers.js b/packages/meteor/helpers.js index 7119a74b96..e469d515e0 100644 --- a/packages/meteor/helpers.js +++ b/packages/meteor/helpers.js @@ -138,17 +138,12 @@ Meteor.wrapAsync = function (fn, context) { } if (! callback) { - if (Meteor.isClient) { - callback = logErr; - } else { - callback = () => console.error("Tried to use wrapAsync."); - } + callback = logErr; ++i; // Insert the callback just after arg. } newArgs[i] = Meteor.bindEnvironment(callback); - var result = fn.apply(self, newArgs); - return fut ? fut.wait() : result; + return fn.apply(self, newArgs); }; }; diff --git a/packages/webapp/.npm/package/npm-shrinkwrap.json b/packages/webapp/.npm/package/npm-shrinkwrap.json index d76c33b1dc..da6538edb6 100644 --- a/packages/webapp/.npm/package/npm-shrinkwrap.json +++ b/packages/webapp/.npm/package/npm-shrinkwrap.json @@ -404,11 +404,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, - "posix": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/posix/-/posix-4.2.0.tgz", - "integrity": "sha512-JbxfT0Fxy/SG10LSkKX1C75iULYfAJqYCwwmM6J0+zh2vl/bE51CqaqvSpdZWg7YAwiuDIoBI6j7in+n3GgXSw==" - }, "promise-polyfill": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz", diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 6928825c20..21429dce98 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -40,6 +40,8 @@ elif [ "$UNAME" == "Darwin" ] ; then echo "Meteor only supports x86_64 for now." exit 1 fi + else + NODE_BUILD_NUMBER="${NODE_BUILD_NUMBER:="187"}" fi OS="macos" diff --git a/scripts/dev-bundle-server-package.js b/scripts/dev-bundle-server-package.js index 88cd796151..d1f14daf34 100644 --- a/scripts/dev-bundle-server-package.js +++ b/scripts/dev-bundle-server-package.js @@ -8,6 +8,8 @@ var packageJson = { name: "meteor-dev-bundle", private: true, dependencies: { + // Keep the versions of these packages consistent with the versions + // found in dev-bundle-tool-package.js. promise: "8.1.0", "@meteorjs/reify": "0.24.0", "@babel/parser": "7.15.3", diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index b41fff5257..19d102c50c 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -16,6 +16,8 @@ var packageJson = { "node-pre-gyp": "0.15.0", typescript: "4.7.4", "@meteorjs/babel": "7.18.0-beta.5", + // Keep the versions of these packages consistent with the versions + // found in dev-bundle-server-package.js. "@meteorjs/reify": "0.24.0", // So that Babel can emit require("@babel/runtime/helpers/...") calls. "@babel/runtime": "7.15.3", diff --git a/tools/cli/commands-packages.js b/tools/cli/commands-packages.js index c0b04dce47..3c5f7b70e8 100644 --- a/tools/cli/commands-packages.js +++ b/tools/cli/commands-packages.js @@ -36,12 +36,12 @@ import { updateMeteorToolSymlink } from "../packaging/updater.js"; // Specifically, it returns an object with the following keys: // - record : (a package or version record) // - isRelease : true if it is a release instead of a package. -var getReleaseOrPackageRecord = function(name) { - var rec = catalog.official.getPackage(name); +var getReleaseOrPackageRecord = async function(name) { + var rec = await catalog.official.getPackage(name); var rel = false; if (!rec) { // Not a package! But is it a release track? - rec = catalog.official.getReleaseTrack(name); + rec = await catalog.official.getReleaseTrack(name); if (rec) { rel = true; } @@ -51,8 +51,9 @@ var getReleaseOrPackageRecord = function(name) { // Seriously, this dies if it can't refresh. Only call it if you're sure you're // OK that the command doesn't work while offline. -var refreshOfficialCatalogOrDie = function (options) { - if (!catalog.refreshOrWarn(options)) { +var refreshOfficialCatalogOrDie = async function (options) { + const isUpToDate = await catalog.refreshOrWarn(options); + if (!isUpToDate) { Console.error( "This command requires an up-to-date package catalog. Exiting."); throw new main.ExitWithCode(1); @@ -175,7 +176,7 @@ var updatePackageMetadata = async function (packageSource, conn) { // You can't change the metadata of a record that doesn't exist. var existingRecord = - catalog.official.getVersion(name, version); + await catalog.official.getVersion(name, version); if (! existingRecord) { Console.error( "You can't call", Console.command("`meteor publish --update`"), @@ -219,7 +220,7 @@ var updatePackageMetadata = async function (packageSource, conn) { "outside the current project directory."); // Refresh, so that we actually learn about the thing we just published. - refreshOfficialCatalogOrDie(); + await refreshOfficialCatalogOrDie(); return 0; }; @@ -302,7 +303,6 @@ main.registerCommand({ lintPackageWithSourceRoot: options['no-lint'] ? null : options.packageDir, }); } - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", async function () { @@ -311,10 +311,11 @@ main.registerCommand({ await projectContext.initializeCatalog(); }); + let conn; if (!process.env.METEOR_TEST_NO_PUBLISH) { // Connect to the package server and log in. try { - var conn = packageClient.loggedInPackagesConnection(); + conn = await packageClient.loggedInPackagesConnection(); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 1; @@ -363,7 +364,7 @@ main.registerCommand({ // Fail early if the package record exists, but we don't think that it does // and are passing in the --create flag! if (options.create) { - var packageInfo = catalog.official.getPackage(packageName); + var packageInfo = await catalog.official.getPackage(packageName); if (packageInfo) { Console.error( "Package already exists. To create a new version of an existing "+ @@ -413,7 +414,7 @@ main.registerCommand({ // package's test and all the test's dependencies. if (!options['no-lint']) { - const warnings = projectContext.getLintingMessagesForLocalPackages(); + const warnings = await projectContext.getLintingMessagesForLocalPackages(); if (warnings && warnings.hasMessages()) { Console.arrowError( "Errors linting your package; run with --no-lint to ignore."); @@ -461,7 +462,7 @@ main.registerCommand({ // We are only publishing one package, so we should close the connection, and // then exit with the previous error code. - conn.close(); + await conn.close(); // Warn the user if their package is not good for all architectures. if (binary && options['existing-version']) { @@ -491,7 +492,7 @@ main.registerCommand({ } // Refresh, so that we actually learn about the thing we just published. - refreshOfficialCatalogOrDie(); + await refreshOfficialCatalogOrDie(); return 0; }); @@ -517,7 +518,7 @@ main.registerCommand({ var name = all[0]; var versionString = all[1]; - var packageInfo = catalog.official.getPackage(name); + var packageInfo = await catalog.official.getPackage(name); if (! packageInfo) { Console.error( "You can't call " + Console.command("`meteor publish-for-arch`") + @@ -532,7 +533,7 @@ main.registerCommand({ return 1; } - var pkgVersion = catalog.official.getVersion(name, versionString); + var pkgVersion = await catalog.official.getVersion(name, versionString); if (! pkgVersion) { Console.error( "You can't call", Console.command("`meteor publish-for-arch`"), @@ -595,8 +596,8 @@ main.registerCommand({ // or we're running from the same release as the published package. // Download the source to the package. - var sourceTarball = buildmessage.enterJob("downloading package source", function () { - return httpHelpers.getUrlWithResuming({ + var sourceTarball = await buildmessage.enterJob("downloading package source", async function () { + return await httpHelpers.getUrlWithResuming({ url: pkgVersion.source.url, encoding: null }); @@ -607,9 +608,9 @@ main.registerCommand({ } var sourcePath = files.mkdtemp('package-source'); - buildmessage.enterJob("extracting package source", () => { + await buildmessage.enterJob("extracting package source", async () => { // XXX check tarballHash! - files.extractTarGz(sourceTarball, sourcePath); + await files.extractTarGz(sourceTarball, sourcePath); }); // XXX Factor out with packageClient.bundleSource so that we don't @@ -643,6 +644,7 @@ main.registerCommand({ forceIncludeCordovaUnibuild: true, allowIncompatibleUpdate: options['allow-incompatible-update'] }); + await projectContext.init() // Just get up to initializing the catalog. We're going to mutate the // constraints file a bit before we prepare the build. await main.captureAndExit("=> Errors while initializing project:", async function () { @@ -664,7 +666,7 @@ main.registerCommand({ var conn; try { - conn = packageClient.loggedInPackagesConnection(); + conn = await packageClient.loggedInPackagesConnection(); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 1; @@ -682,7 +684,7 @@ main.registerCommand({ Console.info('Published ' + name + '@' + versionString + '.'); - refreshOfficialCatalogOrDie(); + await refreshOfficialCatalogOrDie(); return 0; }); @@ -709,10 +711,11 @@ main.registerCommand({ }, catalogRefresh: new catalog.Refresh.OnceAtStart({ ignoreErrors: false }) }, async function (options) { + let conn try { - var conn = packageClient.loggedInPackagesConnection(); + conn = await packageClient.loggedInPackagesConnection(); } catch (err) { - packageClient.handlePackageServerConnectionError(err); + await packageClient.handlePackageServerConnectionError(err); return 1; } @@ -800,7 +803,7 @@ main.registerCommand({ // authorized to publish before we do any complicated/long operations, and // before we publish its packages. if (! options['create-track']) { - var trackRecord = catalog.official.getReleaseTrack(relConf.track); + var trackRecord = await catalog.official.getReleaseTrack(relConf.track); if (!trackRecord) { Console.error( 'There is no release track named ' + relConf.track + @@ -810,7 +813,7 @@ main.registerCommand({ // Check with the server to see if we're organized (we can't due this // locally due to organizations). - if (!packageClient.amIAuthorized(relConf.track,conn, true)) { + if (!await packageClient.amIAuthorized(relConf.track, conn, true)) { Console.error('You are not an authorized maintainer of ' + relConf.track + "."); Console.error('Only authorized maintainers may publish new versions.'); @@ -860,7 +863,7 @@ main.registerCommand({ // though this temporary directory does not have any cordova platforms forceIncludeCordovaUnibuild: true }); - + await projectContext.init(); // Read metadata and initialize catalog. await main.captureAndExit("=> Errors while building for release:", async function () { await projectContext.initializeCatalog(); @@ -888,9 +891,9 @@ main.registerCommand({ relConf.packages = {}; var toPublish = []; - await main.captureAndExit("=> Errors in release packages:", function () { - _.each(allPackages, function (packageName) { - buildmessage.enterJob("checking consistency of " + packageName, function () { + await main.captureAndExit("=> Errors in release packages:", async function () { + for (const packageName of allPackages) { + await buildmessage.enterJob("checking consistency of " + packageName, async function () { var packageSource = projectContext.localCatalog.getPackageSource( packageName); if (! packageSource) { @@ -907,7 +910,7 @@ main.registerCommand({ // Let's get the server version that this local package is // overwriting. If such a version exists, we will need to make sure // that the contents are the same. - var oldVersionRecord = catalog.official.getVersion( + var oldVersionRecord = await catalog.official.getVersion( packageName, packageSource.version); // Include this package in our release. @@ -943,7 +946,7 @@ main.registerCommand({ // First try with the non-simplified build architecture // list, which is likely to be something like // os+web.browser+web.browser.legacy+web.cordova: - catalog.official.getBuildWithPreciseBuildArchitectures( + await catalog.official.getBuildWithPreciseBuildArchitectures( oldVersionRecord, isopk.buildArchitectures(), ) || @@ -951,7 +954,7 @@ main.registerCommand({ // list (e.g. os+web.browser+web.cordova), to match packages // published before the web.browser.legacy architecture was // introduced (in Meteor 1.7). - catalog.official.getBuildWithPreciseBuildArchitectures( + await catalog.official.getBuildWithPreciseBuildArchitectures( oldVersionRecord, isopk.buildArchitectures(true), ); @@ -972,7 +975,7 @@ main.registerCommand({ // new release is being published. packageName === "meteor-tool") { // Save the isopack, just to get its hash. - var bundleBuildResult = packageClient.bundleBuild( + var bundleBuildResult = await packageClient.bundleBuild( isopk, projectContext.isopackCache, ); @@ -988,7 +991,7 @@ main.registerCommand({ } } }); - }); + } }); if (options['dry-run']) { @@ -1003,11 +1006,11 @@ main.registerCommand({ // We now have an object of packages that have new versions on disk that // don't exist in the server catalog. Publish them. var unfinishedBuilds = {}; - _.each(toPublish, async function (packageName) { + for (const packageName of toPublish) { await main.captureAndExit( "=> Errors while publishing:", "publishing package " + packageName, - function () { + async function () { var isopk = projectContext.isopackCache.getIsopack(packageName); if (! isopk) { throw Error("no isopack for " + packageName); @@ -1019,17 +1022,16 @@ main.registerCommand({ } var binary = isopk.platformSpecific(); - packageClient.publishPackage({ + await packageClient.publishPackage({ projectContext: projectContext, packageSource: packageSource, connection: conn, - new: ! catalog.official.getPackage(packageName), + new: ! await catalog.official.getPackage(packageName), doNotPublishBuild: binary }); if (buildmessage.jobHasMessages()) { return; } - Console.info( 'Published ' + packageName + '@' + packageSource.version + '.'); @@ -1037,7 +1039,7 @@ main.registerCommand({ unfinishedBuilds[packageName] = packageSource.version; } }); - }); + } // Set the remaining release information. For now, when we publish from // checkout, we always set 'meteor-tool' as the tool. We don't include the @@ -1054,16 +1056,16 @@ main.registerCommand({ if (options['create-track']) { // XXX maybe this job title should be left on the screen too? some sort // of enterJob/progress option that lets you do that? - await buildmessage.enterJob("creating a new release track", function () { - packageClient.callPackageServerBM( - conn, 'createReleaseTrack', { name: relConf.track } ); + await buildmessage.enterJob("creating a new release track", async function () { + await packageClient.callPackageServerBM( + conn, 'createReleaseTrack', { name: relConf.track }); }); if (buildmessage.jobHasMessages()) { return; } } - await buildmessage.enterJob("creating a new release version", function () { + await buildmessage.enterJob("creating a new release version", async function () { var record = { track: relConf.track, version: relConf.version, @@ -1075,10 +1077,10 @@ main.registerCommand({ }; if (relConf.patchFrom) { - packageClient.callPackageServerBM( + await packageClient.callPackageServerBM( conn, 'createPatchReleaseVersion', record, relConf.patchFrom); } else { - packageClient.callPackageServerBM( + await packageClient.callPackageServerBM( conn, 'createReleaseVersion', record); } }); @@ -1086,7 +1088,7 @@ main.registerCommand({ ); // Learn about it. - refreshOfficialCatalogOrDie(); + await refreshOfficialCatalogOrDie(); Console.info("Done creating " + relConf.track + "@" + relConf.version + "!"); Console.info(); @@ -1103,13 +1105,13 @@ main.registerCommand({ Console.info("Skipping git tag: bad format for git."); } else { Console.info("Creating git tag " + gitTag); - utils.runGitInCheckout('tag', gitTag); + await utils.runGitInCheckout('tag', gitTag); var fail = false; try { Console.info( "Pushing git tag (this should fail if you are not from Meteor Software)"); - utils.runGitInCheckout('push', 'git@github.com:meteor/meteor.git', - 'refs/tags/' + gitTag); + await utils.runGitInCheckout('push', 'git@github.com:meteor/meteor.git', + 'refs/tags/' + gitTag); } catch (err) { Console.error( "Failed to push git tag. Please push git tag manually!"); @@ -1167,8 +1169,8 @@ main.registerCommand({ }); await projectContext.init(); - await main.captureAndExit("=> Errors while initializing project:", function () { - return projectContext.prepareProjectForBuild(); + await main.captureAndExit("=> Errors while initializing project:", async function () { + return await projectContext.prepareProjectForBuild(); }); // No need to display the PackageMapDelta here, since we're about to list all @@ -1493,7 +1495,7 @@ var maybeUpdateRelease = async function (options) { // XXX better error checking on release.current.name // XXX add a method to release.current. var releaseTrack = release.current ? - release.current.getReleaseTrack() : catalog.DEFAULT_TRACK; + await release.current.getReleaseTrack() : catalog.DEFAULT_TRACK; // Unless --release was passed (in which case we ought to already have // springboarded to that release), go get the latest release and switch to @@ -1612,6 +1614,7 @@ var maybeUpdateRelease = async function (options) { alwaysWritePackageMap: true, allowIncompatibleUpdate: true // disregard `.meteor/versions` if necessary }); + await projectContext.init() await main.captureAndExit("=> Errors while initializing project:", async function () { await projectContext.readProjectMetadata(); }); @@ -1647,7 +1650,7 @@ var maybeUpdateRelease = async function (options) { "Cannot patch update unless a release is set."); return 1; } - var record = catalog.official.getReleaseVersion( + var record = await catalog.official.getReleaseVersion( projectContext.releaseFile.releaseTrack, projectContext.releaseFile.releaseVersion); if (!record) { @@ -1661,7 +1664,7 @@ var maybeUpdateRelease = async function (options) { "You are at the latest patch version."); return 0; } - var patchRecord = catalog.official.getReleaseVersion( + var patchRecord = await catalog.official.getReleaseVersion( projectContext.releaseFile.releaseTrack, updateTo); // It looks like you are not at the latest patch version, // technically. But, in practice, we cannot update you to the latest patch @@ -1686,7 +1689,7 @@ var maybeUpdateRelease = async function (options) { // We are not doing a patch update, or a specific release update, so we need // to try all recommended releases on our track, whose order key is greater // than the app's. - releaseVersion = getLaterReleaseVersions( + releaseVersion = await getLaterReleaseVersions( projectContext.releaseFile.releaseTrack, projectContext.releaseFile.releaseVersion)[0]; @@ -1714,7 +1717,7 @@ var maybeUpdateRelease = async function (options) { // Update every package in .meteor/packages to be (semver)>= the version // set for that package in the release we are updating to - var releaseRecord = catalog.official.getReleaseVersion(releaseTrack, releaseVersion); + var releaseRecord = await catalog.official.getReleaseVersion(releaseTrack, releaseVersion); projectContext.projectConstraintsFile.updateReleaseConstraints(releaseRecord); // Download and build packages and write the new versions to .meteor/versions. @@ -1750,12 +1753,12 @@ var maybeUpdateRelease = async function (options) { return 0; }; -function getLaterReleaseVersions(releaseTrack, releaseVersion) { - var releaseInfo = catalog.official.getReleaseVersion( +async function getLaterReleaseVersions(releaseTrack, releaseVersion) { + var releaseInfo = await catalog.official.getReleaseVersion( releaseTrack, releaseVersion); var orderKey = (releaseInfo && releaseInfo.orderKey) || null; - return catalog.official.getSortedRecommendedReleaseVersions( + return await catalog.official.getSortedRecommendedReleaseVersions( releaseTrack, orderKey); } @@ -1818,6 +1821,7 @@ main.registerCommand({ alwaysWritePackageMap: true, allowIncompatibleUpdate: options["allow-incompatible-update"] }); + await projectContext.init() await main.captureAndExit("=> Errors while initializing project:", async function () { await projectContext.readProjectMetadata(); }); @@ -1868,7 +1872,7 @@ main.registerCommand({ var releaseRecordForConstraints = null; if (! files.inCheckout() && projectContext.releaseFile.normalReleaseSpecified()) { - releaseRecordForConstraints = catalog.official.getReleaseVersion( + releaseRecordForConstraints = await catalog.official.getReleaseVersion( projectContext.releaseFile.releaseTrack, projectContext.releaseFile.releaseVersion); if (! releaseRecordForConstraints) { @@ -1906,7 +1910,7 @@ main.registerCommand({ } // Try to resolve constraints, allowing the given packages to be upgraded. - projectContext.reset({ + await projectContext.reset({ releaseForConstraints: releaseRecordForConstraints, upgradePackageNames: upgradePackageNames, upgradeIndirectDepPatchVersions: upgradeIndirectDepPatchVersions @@ -2033,6 +2037,7 @@ main.registerCommand({ projectDir: options.appDir, allowIncompatibleUpdate: options['allow-incompatible-update'] }); + await projectContext.init() await main.captureAndExit("=> Errors while initializing project:", async function () { await projectContext.prepareProjectForBuild(); }); @@ -2056,7 +2061,7 @@ main.registerCommand({ hidden: true, catalogRefresh: new catalog.Refresh.Never() }, async function (options) { - updater.tryToDownloadUpdate({ + await updater.tryToDownloadUpdate({ showBanner: true, printErrors: true }); @@ -2101,7 +2106,7 @@ main.registerCommand({ // though this temporary directory does not have any cordova platforms forceIncludeCordovaUnibuild: true }); - + await projectContext.init() // Read metadata and initialize catalog. await main.captureAndExit("=> Errors while building for release:", async function () { await projectContext.initializeCatalog(); @@ -2112,14 +2117,14 @@ main.registerCommand({ Console.info("Listing packages where the checkout version doesn't match the", "latest version on the package server."); - _.each(allPackages, function (packageName) { - var checkoutVersion = projectContext.localCatalog.getLatestVersion(packageName).version; - var remoteLatestVersion = catalog.official.getLatestVersion(packageName).version; + for (const packageName of allPackages) { + var checkout = projectContext.localCatalog.getLatestVersion(packageName); + var remote = await catalog.official.getLatestVersion(packageName); - if (checkoutVersion !== remoteLatestVersion) { - Console.info(packageName, checkoutVersion, remoteLatestVersion); + if (checkout.version !== remote.version) { + Console.info(packageName, checkout.version, remote.version); } - }); + } }); /////////////////////////////////////////////////////////////////////////////// @@ -2143,10 +2148,10 @@ main.registerCommand({ await projectContext.init(); - await main.captureAndExit("=> Errors while initializing project:", function () { + await main.captureAndExit("=> Errors while initializing project:", async function () { // We're just reading metadata here --- we're not going to resolve // constraints until after we've made our changes. - return projectContext.initializeCatalog(); + return await projectContext.initializeCatalog(); }); let exitCode = 0; @@ -2352,10 +2357,10 @@ main.registerCommand({ }); await projectContext.init(); - await main.captureAndExit("=> Errors while initializing project:", function () { + await main.captureAndExit("=> Errors while initializing project:", async function () { // We're just reading metadata here --- we're not going to resolve // constraints until after we've made our changes. - return projectContext.readProjectMetadata(); + return await projectContext.readProjectMetadata(); }); let exitCode = 0; @@ -2493,12 +2498,12 @@ main.registerCommand({ } // Now let's get down to business! Fetching the thing. - var fullRecord = getReleaseOrPackageRecord(name); + var fullRecord = await getReleaseOrPackageRecord(name); var record = fullRecord.record; if (!options.list) { try { - var conn = packageClient.loggedInPackagesConnection(); + var conn = await packageClient.loggedInPackagesConnection(); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 1; @@ -2508,19 +2513,19 @@ main.registerCommand({ if (options.add) { Console.info("Adding a maintainer to " + name + "..."); if (fullRecord.release) { - packageClient.callPackageServer( + await packageClient.callPackageServer( conn, 'addReleaseMaintainer', name, options.add); } else { - packageClient.callPackageServer( + await packageClient.callPackageServer( conn, 'addMaintainer', name, options.add); } } else if (options.remove) { Console.info("Removing a maintainer from " + name + "..."); if (fullRecord.release) { - packageClient.callPackageServer( + await packageClient.callPackageServer( conn, 'removeReleaseMaintainer', name, options.remove); } else { - packageClient.callPackageServer( + await packageClient.callPackageServer( conn, 'removeMaintainer', name, options.remove); } Console.info("Success."); @@ -2533,8 +2538,8 @@ main.registerCommand({ // Update the catalog so that we have this information, and find the record // again so that the message below is correct. - refreshOfficialCatalogOrDie(); - fullRecord = getReleaseOrPackageRecord(name); + await refreshOfficialCatalogOrDie(); + fullRecord = await getReleaseOrPackageRecord(name); record = fullRecord.record; } @@ -2605,7 +2610,7 @@ main.registerCommand({ var toolPackage = toolPackageVersion.package; var toolVersion = toolPackageVersion.version; - var toolPkgBuilds = catalog.official.getAllBuilds( + var toolPkgBuilds = await catalog.official.getAllBuilds( toolPackage, toolVersion); if (!toolPkgBuilds) { // XXX this could also mean package unknown. @@ -2672,11 +2677,11 @@ main.registerCommand({ var tmpDataFile = files.pathJoin(dataTmpdir, 'packages.data.db'); var tmpCatalog = new catalogRemote.RemoteCatalog(); - tmpCatalog.initialize({ + await tmpCatalog.initialize({ packageStorage: tmpDataFile }); try { - packageClient.updateServerPackageData(tmpCatalog, null); + await packageClient.updateServerPackageData(tmpCatalog, null); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 2; @@ -2686,8 +2691,8 @@ main.registerCommand({ // so we should ensure that once it is downloaded, it knows it is recommended // rather than having a little identity crisis and thinking that a past // release is the latest recommended until it manages to sync. - tmpCatalog.forceRecommendRelease(releaseTrack, releaseVersion); - tmpCatalog.closePermanently(); + await tmpCatalog.forceRecommendRelease(releaseTrack, releaseVersion); + await tmpCatalog.closePermanently(); if (files.exists(tmpDataFile + '-wal')) { throw Error("Write-ahead log still exists for " + tmpDataFile + " so the data file will be incomplete!"); @@ -2746,9 +2751,9 @@ main.registerCommand({ 'meteor')); if (options.unpacked) { - files.cp_r(tmpTropo.root, outputDirectory); + await files.cp_r(tmpTropo.root, outputDirectory); } else { - files.createTarball( + await files.createTarball( tmpTropo.root, files.pathJoin(outputDirectory, 'meteor-bootstrap-' + osArch + '.tar.gz')); @@ -2784,14 +2789,14 @@ main.registerCommand({ } try { - var conn = packageClient.loggedInPackagesConnection(); + var conn = await packageClient.loggedInPackagesConnection(); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 1; } try { - packageClient.callPackageServer( + await packageClient.callPackageServer( conn, 'setBannersOnReleases', bannersData.track, bannersData.banners); } catch (e) { @@ -2800,7 +2805,7 @@ main.registerCommand({ } // Refresh afterwards. - refreshOfficialCatalogOrDie(); + await refreshOfficialCatalogOrDie(); return 0; }); @@ -2825,7 +2830,7 @@ main.registerCommand({ } // Now let's get down to business! Fetching the thing. - var record = catalog.official.getReleaseTrack(name); + var record = await catalog.official.getReleaseTrack(name); if (!record) { Console.error(); Console.error('There is no release track named ' + name); @@ -2842,13 +2847,13 @@ main.registerCommand({ try { if (options.unrecommend) { Console.info("Unrecommending " + name + "@" + version + "..."); - packageClient.callPackageServer( + await packageClient.callPackageServer( conn, 'unrecommendVersion', name, version); Console.info("Success."); Console.info(name + "@" + version, "is no longer a recommended release"); } else { Console.info("Recommending " + options.args[0] + "..."); - packageClient.callPackageServer(conn, 'recommendVersion', name, version); + await packageClient.callPackageServer(conn, 'recommendVersion', name, version); Console.info("Success."); Console.info(name + "@" + version, "is now a recommended release"); } @@ -2856,8 +2861,8 @@ main.registerCommand({ packageClient.handlePackageServerConnectionError(err); return 1; } - conn.close(); - refreshOfficialCatalogOrDie(); + await conn.close(); + await refreshOfficialCatalogOrDie(); return 0; }); @@ -2876,7 +2881,7 @@ main.registerCommand({ var url = options.args[1]; // Now let's get down to business! Fetching the thing. - var record = catalog.official.getPackage(name); + var record = await catalog.official.getPackage(name); if (!record) { Console.error(); Console.error('There is no package named ' + name); @@ -2884,7 +2889,7 @@ main.registerCommand({ } try { - var conn = packageClient.loggedInPackagesConnection(); + var conn = await packageClient.loggedInPackagesConnection(); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 1; @@ -2894,15 +2899,15 @@ main.registerCommand({ Console.rawInfo( "Changing homepage on " + name + " to " + url + "...\n"); - packageClient.callPackageServer(conn, - '_changePackageHomepage', name, url); + await packageClient.callPackageServer(conn, + '_changePackageHomepage', name, url); Console.info(" done"); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 1; } - conn.close(); - refreshOfficialCatalogOrDie(); + await conn.close(); + await refreshOfficialCatalogOrDie(); return 0; }); @@ -2934,7 +2939,7 @@ main.registerCommand({ } try { - var conn = packageClient.loggedInPackagesConnection(); + var conn = await packageClient.loggedInPackagesConnection(); } catch (err) { packageClient.handlePackageServerConnectionError(err); return 1; @@ -2958,7 +2963,7 @@ main.registerCommand({ return 1; } conn.close(); - refreshOfficialCatalogOrDie(); + await refreshOfficialCatalogOrDie(); return 0; }); diff --git a/tools/cli/commands.js b/tools/cli/commands.js index 79451c6efb..619dbc6e4a 100644 --- a/tools/cli/commands.js +++ b/tools/cli/commands.js @@ -187,8 +187,8 @@ main.registerCommand({ requiresRelease: false, pretty: false, catalogRefresh: new catalog.Refresh.Never() -}, async function () { - Console.rawInfo(await archinfo.host() + "\n"); +}, function () { + Console.rawInfo(archinfo.host() + "\n"); }); // Prints the current release in use. Note that if there is not @@ -1041,11 +1041,11 @@ var buildCommand = async function (options) { showInvalidArchMsg(options.architecture); return 1; } - var bundleArch = options.architecture || await archinfo.host(); + var bundleArch = options.architecture || archinfo.host(); var projectContext = new projectContextModule.ProjectContext({ projectDir: options.appDir, - serverArchitectures: _.uniq([bundleArch, await archinfo.host()]), + serverArchitectures: _.uniq([bundleArch, archinfo.host()]), allowIncompatibleUpdate: options['allow-incompatible-update'] }); await projectContext.init(); @@ -1325,6 +1325,7 @@ main.registerCommand({ allowIncompatibleUpdate: options['allow-incompatible-update'], lintPackageWithSourceRoot: packageDir }); + await projectContext.init() await main.captureAndExit("=> Errors while setting up package:", // Read metadata and initialize catalog. @@ -1346,7 +1347,7 @@ main.registerCommand({ if (! projectContext && appDir) { projectContext = new projectContextModule.ProjectContext({ projectDir: appDir, - serverArchitectures: [await archinfo.host()], + serverArchitectures: [archinfo.host()], allowIncompatibleUpdate: options['allow-incompatible-update'], lintAppAndLocalPackages: true }); @@ -1379,7 +1380,7 @@ main.registerCommand({ Console.warn(bundle.warnings.formatMessages()); return 1; } - + console.log(green`=> Done linting.`); return 0; }); @@ -1545,17 +1546,17 @@ main.registerCommand({ }, catalogRefresh: new catalog.Refresh.Never() }, async function (...args) { - return Profile.run( + return await Profile.run( "meteor deploy", - () => Promise.await(deployCommand(...args)) + async () => await deployCommand(...args) ); }); -function deployCommand(options, { rawOptions }) { +async function deployCommand(options, { rawOptions }) { const site = options.args[0]; if (options.delete) { - return deploy.deleteApp(site); + return await deploy.deleteApp(site); } if (options.password) { @@ -1572,7 +1573,8 @@ function deployCommand(options, { rawOptions }) { Console.error( "You must be logged in to deploy, just enter your email address."); Console.error(); - if (! auth.registerOrLogIn()) { + const isRegistered = await auth.registerOrLogIn(); + if (! isRegistered) { return 1; } } @@ -1585,18 +1587,18 @@ function deployCommand(options, { rawOptions }) { "OVERRIDING DEPLOY ARCHITECTURE WITH LOCAL ARCHITECTURE.", "If your app contains binary code, it may break in unexpected " + "and terrible ways."); - buildArch = archinfo.host(); + buildArch = archinfo.host(); } const projectContext = new projectContextModule.ProjectContext({ projectDir: options.appDir, - serverArchitectures: _.uniq([buildArch, archinfo.host()]), + serverArchitectures: _.uniq([buildArch, archinfo.host()]), allowIncompatibleUpdate: options['allow-incompatible-update'] }); - - main.captureAndExit("=> Errors while initializing project:", function () { + await projectContext.init() + await main.captureAndExit("=> Errors while initializing project:", function () { // TODO Fix nested Profile.run warning here, too. - projectContext.prepareProjectForBuild(); + return projectContext.prepareProjectForBuild(); }); projectContext.packageMapDelta.displayOnConsole(); @@ -1623,7 +1625,7 @@ function deployCommand(options, { rawOptions }) { const isBuildOnly = !!options['build-only']; const waitForDeploy = !options['no-wait']; - const deployResult = deploy.bundleAndDeploy({ + const deployResult = await deploy.bundleAndDeploy({ projectContext, site, settingsFile: options.settings, @@ -1642,12 +1644,12 @@ function deployCommand(options, { rawOptions }) { }); if (deployResult === 0) { - auth.maybePrintRegistrationLink({ + await auth.maybePrintRegistrationLink({ leadingNewline: true, // If the user was already logged in at the beginning of the // deploy, then they've already been prompted to set a password // at least once before, so we use a slightly different message. - firstTime: ! loggedIn + firstTime: !loggedIn }); } @@ -1848,7 +1850,7 @@ async function doTestCommand(options) { // Download packages for our architecture, and for the deploy server's // architecture if we're deploying. - const archInfoHost = await archinfo.host(); + const archInfoHost = archinfo.host(); var serverArchitectures = [archInfoHost]; if (options.deploy && DEPLOY_ARCH !== archInfoHost) { serverArchitectures.push(DEPLOY_ARCH); @@ -2251,23 +2253,23 @@ main.registerCommand({ // organizations /////////////////////////////////////////////////////////////////////////////// -var loggedInAccountsConnectionOrPrompt = function (action) { +var loggedInAccountsConnectionOrPrompt = async function (action) { var token = auth.getSessionToken(config.getAccountsDomain()); if (! token) { Console.error("You must be logged in to " + action + "."); - auth.doUsernamePasswordLogin({ retry: true }); + await auth.doUsernamePasswordLogin({ retry: true }); Console.info(); } token = auth.getSessionToken(config.getAccountsDomain()); - var conn = auth.loggedInAccountsConnection(token); + var conn = await auth.loggedInAccountsConnection(token); if (conn === null) { // Server rejected our token. Console.error("You must be logged in to " + action + "."); - auth.doUsernamePasswordLogin({ retry: true }); + await auth.doUsernamePasswordLogin({ retry: true }); Console.info(); token = auth.getSessionToken(config.getAccountsDomain()); - conn = auth.loggedInAccountsConnection(token); + conn = await auth.loggedInAccountsConnection(token); } return conn; @@ -2280,18 +2282,18 @@ main.registerCommand({ maxArgs: 0, pretty: false, catalogRefresh: new catalog.Refresh.Never() -}, function (options) { +}, async function (options) { var token = auth.getSessionToken(config.getAccountsDomain()); if (! token) { Console.error("You must be logged in to list your organizations."); - auth.doUsernamePasswordLogin({ retry: true }); + await auth.doUsernamePasswordLogin({ retry: true }); Console.info(); } var url = config.getAccountsApiUrl() + "/organizations"; try { - var result = httpHelpers.request({ + var result = await httpHelpers.request({ url: url, method: "GET", useSessionHeader: true, @@ -2340,7 +2342,7 @@ main.registerCommand({ return options.add || options.remove; }, catalogRefresh: new catalog.Refresh.Never() -}, function (options) { +}, async function (options) { if (options.add && options.remove) { Console.error( @@ -2350,13 +2352,13 @@ main.registerCommand({ var username = options.add || options.remove; - var conn = loggedInAccountsConnectionOrPrompt( + var conn = await loggedInAccountsConnectionOrPrompt( username ? "edit organizations" : "show an organization's members"); if (username ) { // Adding or removing members try { - conn.call( + await conn.callAsync( options.add ? "addOrganizationMember": "removeOrganizationMember", options.args[0], username); } catch (err) { @@ -2372,7 +2374,7 @@ main.registerCommand({ } else { // Showing the members of an org try { - var result = conn.call("showOrganization", options.args[0]); + var result = await conn.callAsync("showOrganization", options.args[0]); } catch (err) { Console.error("Error showing organization: " + err.reason); return 1; diff --git a/tools/cli/main.js b/tools/cli/main.js index 987e643446..da950062b2 100644 --- a/tools/cli/main.js +++ b/tools/cli/main.js @@ -495,7 +495,7 @@ var springboard = async function (rel, options) { }); if (!toolRecord) { - throw Error("missing tool for " + await archinfo.host() + " in " + + throw Error("missing tool for " + archinfo.host() + " in " + toolsPkg + "@" + toolsVersion); } @@ -1557,7 +1557,8 @@ makeGlobalAsyncLocalStorage().run({}, async function () { } else if (e instanceof main.ExitWithCode) { process.exit(e.code); } else { - throw e; + console.error(e); + process.exit(1); } } diff --git a/tools/console/console.js b/tools/console/console.js index c1fcc61f46..b3d3ae04e2 100644 --- a/tools/console/console.js +++ b/tools/console/console.js @@ -689,7 +689,7 @@ class Console extends ConsoleBase { // The caller should be OK with yielding --- it has to be in a Fiber and it can't be // anything that depends for correctness on not yielding. You can also call nudge(false) // if you just want to update the spinner and not yield, but you should avoid this. - // TODO -> Check here + // TODO [fibers] -> Check here - consider this comment https://github.com/meteor/meteor/pull/12471/files#r1089560766 async nudge(canYield) { if (this._statusPoller) { this._statusPoller.statusPoll(); diff --git a/tools/console/progress.ts b/tools/console/progress.ts index 1a514554ed..f6c5990cb1 100644 --- a/tools/console/progress.ts +++ b/tools/console/progress.ts @@ -45,6 +45,7 @@ export class Progress { return "Progress [state=" + JSON.stringify(this.state) + "]"; } + // TODO [fibers] - check if this can be really be async. Consider this comment https://github.com/meteor/meteor/pull/12471/files#r1089318098 async reportProgressDone() { const state = { ...this.selfState, @@ -145,6 +146,7 @@ export class Progress { // Nudge the spinner/progress bar, but don't yield (might not be safe to yield) const { Console } = require("./console.js"); + // TODO [fibers] review this call. Consider this comment https://github.com/meteor/meteor/pull/12471/files#r1089316971 await Console.nudge(false); this.notifyState(); diff --git a/tools/fs/files.ts b/tools/fs/files.ts index 3dcf3d9b71..80e17fe774 100644 --- a/tools/fs/files.ts +++ b/tools/fs/files.ts @@ -4,28 +4,12 @@ /// (such as testing whether an directory is a meteor app) /// -import fs, { PathLike, Stats, Dirent } from "fs"; +import fs, { Dirent, PathLike, Stats } from "fs"; import os from "os"; import { execFile } from "child_process"; import { EventEmitter } from "events"; import { Slot } from "@wry/context"; import { dep } from "optimism"; - -const _ = require('underscore'); - -const rimraf = require('rimraf'); -const sourcemap = require('source-map'); -const sourceMapRetrieverStack = require('../tool-env/source-map-retriever-stack.js'); - -const utils = require('../utils/utils.js'); -const cleanup = require('../tool-env/cleanup.js'); -const buildmessage = require('../utils/buildmessage.js'); -const fiberHelpers = require('../utils/fiber-helpers.js'); -const colonConverter = require('../utils/colon-converter.js'); - -const Profile = require('../tool-env/profile').Profile; - -export * from '../static-assets/server/mini-files'; import { convertToOSPath, convertToPosixPath, @@ -43,6 +27,22 @@ import { pathSep, } from "../static-assets/server/mini-files"; +const _ = require('underscore'); + +const rimraf = require('rimraf'); +const sourcemap = require('source-map'); +const sourceMapRetrieverStack = require('../tool-env/source-map-retriever-stack.js'); + +const utils = require('../utils/utils.js'); +const cleanup = require('../tool-env/cleanup.js'); +const buildmessage = require('../utils/buildmessage.js'); +const fiberHelpers = require('../utils/fiber-helpers.js'); +const colonConverter = require('../utils/colon-converter.js'); + +const Profile = require('../tool-env/profile').Profile; + +export * from '../static-assets/server/mini-files'; + const { hasOwnProperty } = Object.prototype; const parsedSourceMaps: Record = {}; @@ -360,17 +360,10 @@ export const rm_recursive = Profile("files.rm_recursive", async (path: string) = export function fileHash(filename: string) { const crypto = require('crypto'); const hash = crypto.createHash('sha256'); - hash.setEncoding('base64'); - const rs = createReadStream(filename); - return new Promise(function (resolve) { - rs.on('end', function () { - rs.close(); - resolve(hash.digest('base64')); - }); - rs.pipe(hash, { end: false }); - }).await(); + const fileBuff = readFile(filename); + hash.update(fileBuff); + return hash.digest('base64'); } - // This is the result of running fileHash on a blank file. export const blankHash = "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="; @@ -385,9 +378,9 @@ export function treeHash(root: string, optionsParams: { ...optionsParams, }; - const hash = require('crypto').createHash('sha256'); + function traverse(relativePath: string) { + const hash = require('crypto').createHash('sha256'); - function traverse(relativePath: string) { if (options.ignore(relativePath)) { return; } @@ -406,8 +399,9 @@ export function treeHash(root: string, optionsParams: { if (!relativePath) { throw Error("must call files.treeHash on a directory"); } + const fileHashed = fileHash(absPath); hash.update('file ' + JSON.stringify(relativePath) + ' ' + - stat?.size + ' ' + fileHash(absPath) + '\n'); + stat?.size + ' ' + fileHashed + '\n'); // @ts-ignore if (stat.mode & 0o100) { @@ -421,9 +415,11 @@ export function treeHash(root: string, optionsParams: { JSON.stringify(readlink(absPath)) + '\n'); } // ignore anything weirder + + return hash } - traverse(''); + const hash = traverse(''); return hash.digest('base64'); } @@ -506,7 +502,7 @@ export async function cp_r(from: string, to: string, options: { if (stat.isDirectory()) { mkdir_p(to, 0o755); - for (const f of readdir(from)) { + for (let f of readdir(from)) { if (options.ignore && options.ignore.some(pattern => f.match(pattern))) { return; diff --git a/tools/fs/safe-watcher.ts b/tools/fs/safe-watcher.ts index 80e5b8b785..cea3d74d7b 100644 --- a/tools/fs/safe-watcher.ts +++ b/tools/fs/safe-watcher.ts @@ -372,9 +372,7 @@ function watchLibraryWatch(absPath: string, callback: EntryCallback) { let suggestedRaisingWatchLimit = false; -// This function is async so that archinfo.host() (which may call -// utils.execFileSync) will run in a Fiber. -async function maybeSuggestRaisingWatchLimit(error: Error & { errno: number }) { +function maybeSuggestRaisingWatchLimit(error: Error & { errno: number }) { var constants = require('constants'); var archinfo = require('../utils/archinfo'); if (! suggestedRaisingWatchLimit && @@ -388,7 +386,7 @@ async function maybeSuggestRaisingWatchLimit(error: Error & { errno: number }) { // proposed PR, which had a slightly different interface). error.errno === constants.ENOSPC && // The only suggestion we currently have is for Linux. - archinfo.matches(await archinfo.host(), 'os.linux')) { + archinfo.matches(archinfo.host(), 'os.linux')) { // Check suggestedRaisingWatchLimit again because archinfo.host() may // have yielded. diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index b38da99c78..b1f7a5db33 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -951,7 +951,7 @@ class Target { if (p.testOnly && this.buildMode !== 'test') { continue; } - const unibuild = await p.getUnibuildAtArch(this.arch); + const unibuild = p.getUnibuildAtArch(this.arch); unibuild && rootUnibuilds.push(unibuild); } @@ -2594,7 +2594,7 @@ class JsImage { ret.arch = json.arch; // Rebuild binary npm packages if host arch matches image arch. - const rebuildBinaries = archinfo.matches(await archinfo.host(), ret.arch); + const rebuildBinaries = archinfo.matches(archinfo.host(), ret.arch); for (const item of json.load) { rejectBadPath(item.path); @@ -3209,7 +3209,7 @@ async function bundle({ }) { buildOptions = buildOptions || {}; - var serverArch = buildOptions.serverArch || await archinfo.host(); + var serverArch = buildOptions.serverArch || archinfo.host(); var webArchs; if (buildOptions.webArchs) { // Don't attempt to build web.cordova when platforms have been removed @@ -3596,7 +3596,7 @@ exports.buildJsImage = Profile("bundler.buildJsImage", async function (options) // cross-bundling, not cross-package-building, and this function is only // used to build plugins (during package build) and for isopack.load // (which always wants to build for the current host). - arch: await archinfo.host() + arch: archinfo.host() }); await target.make({ packages: [isopack] }); diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index a14c5e79b6..3f368886c9 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -1110,7 +1110,7 @@ export class PackageSourceBatch { self.useMeteorInstall = _.isString(self.sourceRoot) && - await self.processor.isopackCache.uses( + self.processor.isopackCache.uses( self.unibuild.pkg, "modules", self.unibuild.arch diff --git a/tools/isobuild/compiler.js b/tools/isobuild/compiler.js index 477d0aba0b..d9ce37a067 100644 --- a/tools/isobuild/compiler.js +++ b/tools/isobuild/compiler.js @@ -675,7 +675,7 @@ api.addAssets('${relPath}', 'client').`); var arch = inputSourceArch.arch; if (arch === "os" && ! isPortable) { // Contains non-portable compiled npm modules, so set arch correctly - arch = await archinfo.host(); + arch = archinfo.host(); } let nodeModulesDirsOrUndefined = nodeModulesDirectories; @@ -733,7 +733,7 @@ async function runLinters({inputSourceArch, isopackCache, sources, // exists instead of failing because a dependency does not have an 'os' // unibuild. const whichArch = inputSourceArch.arch === 'os' - ? await archinfo.host() : inputSourceArch.arch; + ? archinfo.host() : inputSourceArch.arch; // For linters, figure out what are the global imports from other packages // that we use directly, or are implied. @@ -897,7 +897,7 @@ export async function getActivePluginPackages(isopk, { // and because plugins always have to run on the host architecture. await compiler.eachUsedUnibuild({ dependencies: uses, - arch: await archinfo.host(), + arch: archinfo.host(), isopackCache: isopackCache, skipUnordered: true // implicitly skip weak deps by not specifying acceptableWeakPackages option @@ -971,7 +971,7 @@ compiler.eachUsedUnibuild = async function ( continue; } - var unibuild = await usedPackage.getUnibuildAtArch(arch); + var unibuild = usedPackage.getUnibuildAtArch(arch); if (!unibuild) { // The package exists but there's no unibuild for us. A buildmessage has // already been issued. Recover by skipping. diff --git a/tools/isobuild/isopack-cache.js b/tools/isobuild/isopack-cache.js index 287209aa67..3ae3104dab 100644 --- a/tools/isobuild/isopack-cache.js +++ b/tools/isobuild/isopack-cache.js @@ -140,7 +140,7 @@ export class IsopackCache { return null; } - async uses(isopack, name, arch) { + uses(isopack, name, arch) { if (! isopack) { return false; } @@ -150,13 +150,13 @@ export class IsopackCache { return true; } - const unibuild = await isopack.getUnibuildAtArch(arch); + const unibuild = isopack.getUnibuildAtArch(arch); if (! unibuild) { return false; } for (const use of unibuild.uses) { - const implies = await this.implies( + const implies = this.implies( this._isopacks[use.package], name, arch, @@ -166,7 +166,7 @@ export class IsopackCache { } } - async implies(isopack, name, arch) { + implies(isopack, name, arch) { if (! isopack) { return false; } @@ -176,13 +176,13 @@ export class IsopackCache { return true; } - const unibuild = await isopack.getUnibuildAtArch(arch); + const unibuild = isopack.getUnibuildAtArch(arch); if (! unibuild) { return false; } for (const imp of unibuild.implies) { - const implies = await this.implies( + const implies = this.implies( this._isopacks[imp.package], name, arch, diff --git a/tools/isobuild/isopack.js b/tools/isobuild/isopack.js index af98519409..b1925feaf4 100644 --- a/tools/isobuild/isopack.js +++ b/tools/isobuild/isopack.js @@ -401,7 +401,7 @@ Object.assign(Isopack.prototype, { // Return the unibuild of the package to use for a given target architecture // (eg, 'os.linux.x86_64' or 'web'), or throw an exception if that // packages can't be loaded under these circumstances. - getUnibuildAtArch: Profile("Isopack#getUnibuildAtArch", async function (arch) { + getUnibuildAtArch: Profile("Isopack#getUnibuildAtArch", function (arch) { var self = this; let chosenArch = archinfo.mostSpecificMatch( @@ -412,7 +412,7 @@ Object.assign(Isopack.prototype, { // are processing a local package with binary npm deps). Search // again for the host version, which might find the Mac version. chosenArch = - archinfo.mostSpecificMatch(await archinfo.host(), _.pluck(self.unibuilds, 'arch')); + archinfo.mostSpecificMatch(archinfo.host(), _.pluck(self.unibuilds, 'arch')); } if (! chosenArch) { buildmessage.error( @@ -453,7 +453,7 @@ Object.assign(Isopack.prototype, { for (const [name, pluginsByArch] of Object.entries(self.plugins)) { var arch = archinfo.mostSpecificMatch( - await archinfo.host(), Object.keys(pluginsByArch)); + archinfo.host(), Object.keys(pluginsByArch)); if (! arch) { buildmessage.error("package `" + name + "` is built for incompatible " + "architecture"); @@ -1009,6 +1009,9 @@ Object.assign(Isopack.prototype, { // of this flag is allow us to optimize cases that never need to write the // older format, such as the per-app isopack cache.) // - isopackCache: isopack cache in which this isopack is registered + /** + * @return {Promise} + */ saveToPath: Profile("Isopack#saveToPath", async function (outputDir, { includePreCompilerPluginIsopackVersions, includeIsopackBuildInfo, @@ -1444,7 +1447,7 @@ Object.assign(Isopack.prototype, { }); // Set up builder to write to the correct directory - var toolPath = 'mt-' + await archinfo.host(); + var toolPath = 'mt-' + archinfo.host(); builder = await builder.enter(toolPath); const sourceRootDir = files.getCurrentToolsDir(); @@ -1524,7 +1527,7 @@ Object.assign(Isopack.prototype, { return [{ name: 'meteor', - arch: await archinfo.host(), + arch: archinfo.host(), path: toolPath }]; }), diff --git a/tools/isobuild/unibuild.js b/tools/isobuild/unibuild.js index acd5772413..b6cbc1e7de 100644 --- a/tools/isobuild/unibuild.js +++ b/tools/isobuild/unibuild.js @@ -213,7 +213,7 @@ export class Unibuild { packageName: isopack.name, sourceRoot: unibuildBasePath, // Rebuild binary npm packages if unibuild arch matches host arch. - rebuildBinaries: archinfo.matches(await archinfo.host(), arch) + rebuildBinaries: archinfo.matches(archinfo.host(), arch) }); return new this(isopack, { diff --git a/tools/meteor-services/auth-client.js b/tools/meteor-services/auth-client.js index ef751671c4..382645f387 100644 --- a/tools/meteor-services/auth-client.js +++ b/tools/meteor-services/auth-client.js @@ -50,10 +50,10 @@ exports.handleConnectionError = function (error, label) { // domain: the domain (ex: packages.meteor.com) // sessionType: the name of the connection (ex: "package-server") // -exports.loggedInConnection = function (url, domain, sessionType) { +exports.loggedInConnection = async function (url, domain, sessionType) { // Make sure that we are logged in with Meteor Accounts so that we can // do an OAuth flow. - if (auth.maybePrintRegistrationLink({onlyAllowIfRegistered: true})) { + if (await auth.maybePrintRegistrationLink({ onlyAllowIfRegistered: true })) { // Oops, we're logged in but with a deferred-registration account. // Message has already been printed. throw new exports.AlreadyPrintedMessageError; @@ -65,13 +65,13 @@ exports.loggedInConnection = function (url, domain, sessionType) { "Please log in with your Meteor developer account.", "If you don't have one,", "you can quickly create one at www.meteor.com."); - auth.doUsernamePasswordLogin({ retry: true }); + await auth.doUsernamePasswordLogin({ retry: true }); } - var conn = exports.openServiceConnection(url); - var accountsConfiguration = auth.getAccountsConfiguration(conn); + var conn = await exports.openServiceConnection(url); + var accountsConfiguration = await auth.getAccountsConfiguration(conn); try { - auth.loginWithTokenOrOAuth( + await auth.loginWithTokenOrOAuth( conn, accountsConfiguration, url, @@ -86,8 +86,8 @@ exports.loggedInConnection = function (url, domain, sessionType) { "It looks like you have been logged out!", "Please log in with your Meteor developer account. If you don't have", "one, you can quickly create one at www.meteor.com."); - auth.doUsernamePasswordLogin({ retry: true }); - auth.loginWithTokenOrOAuth( + await auth.doUsernamePasswordLogin({ retry: true }); + await auth.loginWithTokenOrOAuth( conn, accountsConfiguration, url, diff --git a/tools/meteor-services/auth.js b/tools/meteor-services/auth.js index c4d32a8364..50bc2a42d9 100644 --- a/tools/meteor-services/auth.js +++ b/tools/meteor-services/auth.js @@ -46,6 +46,11 @@ var withAccountsConnection = function (f) { // // XXX if we reconnect we won't reauthenticate. Fix that before using // this for long-lived connections. +/** + * + * @param token + * @return {Promise<*>} + */ var loggedInAccountsConnection = async function (token) { var connection = (await loadDDP()).connect( config.getAuthDDPUrl() diff --git a/tools/meteor-services/deploy.js b/tools/meteor-services/deploy.js index ff82422fa0..ca722ec7bb 100644 --- a/tools/meteor-services/deploy.js +++ b/tools/meteor-services/deploy.js @@ -230,7 +230,7 @@ async function authedRpc(options) { suppressErrorMessage: true }; if (await doInteractivePasswordLogin(loginOptions)) { - return authedRpc(options); + return await authedRpc(options); } else { return { statusCode: 403, @@ -241,7 +241,7 @@ async function authedRpc(options) { if (infoResult.statusCode === 404) { // Doesn't exist, therefore not protected. - return preflight ? { } : deployRpc(rpcOptions); + return preflight ? { } : await deployRpc(rpcOptions); } if (infoResult.errorMessage) { @@ -253,7 +253,7 @@ async function authedRpc(options) { // Not protected. // // XXX should prompt the user to claim the app (only if deploying?) - return preflight ? { } : deployRpc(rpcOptions); + return preflight ? { } : await deployRpc(rpcOptions); } if (info.protection === "account") { @@ -281,7 +281,7 @@ async function authedRpc(options) { authorized: info.authorized }; } else { - return deployRpc(rpcOptions); + return await deployRpc(rpcOptions); } } @@ -409,7 +409,7 @@ async function pollForDeploy(pollingState, versionId, site, deployWithTokenProps } = pollingState; // Do a call to the version-status endpoint for the specified versionId - const versionStatusResult = deployRpc({ + const versionStatusResult = await deployRpc({ method: 'GET', operation: 'version-status', site, @@ -509,14 +509,14 @@ export async function bundleAndDeploy(options) { // they'll get an email prompt instead of a username prompt because // the command-line tool didn't have time to learn about their // username before the credential was expired. - pollForRegistrationCompletion({ + await pollForRegistrationCompletion({ noLogout: true }); const promptIfAuthFails = (loggedInUsername() !== null); // Check auth up front, rather than after the (potentially lengthy) // bundling process. - const preflight = authedRpc({ + const preflight = await authedRpc({ site: site, preflight: true, promptIfAuthFails: promptIfAuthFails, @@ -625,7 +625,7 @@ export async function bundleAndDeploy(options) { } if (options.recordPackageUsage) { - recordPackages({ + await recordPackages({ what: "sdk.deploy", projectContext: options.projectContext, site: site @@ -645,10 +645,10 @@ export async function bundleAndDeploy(options) { }; Console.info('Preparing to upload your app...'); - const result = buildmessage.enterJob({ + const result = await buildmessage.enterJob({ title: "uploading" - }, Profile("upload bundle", function () { - return authedRpc({ + }, Profile("upload bundle", async function () { + return await authedRpc({ method: 'POST', operation: 'deploy', site: site, @@ -701,13 +701,13 @@ export async function bundleAndDeploy(options) { return 0; }; -export function deleteApp(site) { +export async function deleteApp(site) { site = canonicalizeSite(site); if (! site) { return 1; } - var result = authedRpc({ + var result = await authedRpc({ method: 'DELETE', operation: 'deploy', site: site, diff --git a/tools/packaging/package-client.js b/tools/packaging/package-client.js index ff6b29de2a..0a10007e06 100644 --- a/tools/packaging/package-client.js +++ b/tools/packaging/package-client.js @@ -49,17 +49,17 @@ var saveReadmeToTmp = async function (readmeInfo) { // Given a connection, makes a call to the package server. (Checks to see if // the connection is connected, and reconnects if needed -- a workaround for // the fact that connections in the tool do not reconnect) -exports.callPackageServer = function (conn, ...args) { +exports.callPackageServer = async function (conn, ...args) { // XXX This is broken since it doesn't actually replace the conn in the // caller, so it'll happen on every subsequent call if (!conn.connected) { conn.close(); - conn = exports.loggedInPackagesConnection(); + conn = await exports.loggedInPackagesConnection(); } return conn.call(...args); }; -var callPackageServerBM = exports.callPackageServerBM = function (...args) { +var callPackageServerBM = exports.callPackageServerBM = async function (...args) { buildmessage.assertInJob(); try { return exports.callPackageServer.apply(null, args); @@ -102,7 +102,7 @@ var loadRemotePackageData = async function (conn, syncToken, options) { if (options && options.compressCollections) { syncOpts.compressCollections = options.compressCollections; } - return conn.call('syncNewPackageData', syncToken, syncOpts); + return await conn.call('syncNewPackageData', syncToken, syncOpts); }; // Contacts the package server to get the latest diff and writes changes to @@ -124,9 +124,9 @@ var loadRemotePackageData = async function (conn, syncToken, options) { // `config.getPackageServerUrl()`) // - useShortPages: Boolean. Request short pages of ~3 records from the // server, instead of ~100 that it would send otherwise -exports.updateServerPackageData = function (dataStore, options) { - return buildmessage.enterJob('updating package catalog', function () { - return _updateServerPackageData(dataStore, options); +exports.updateServerPackageData = async function (dataStore, options) { + return await buildmessage.enterJob('updating package catalog', async function () { + return await _updateServerPackageData(dataStore, options); }); }; @@ -149,7 +149,6 @@ var _updateServerPackageData = async function (dataStore, options) { useProgressbar && buildmessage.reportProgress(state); var conn = await openPackageServerConnection(options.packageServerUrl); - // Provide some progress indication for connection // XXX though it is just a hack state.current = 1; @@ -178,6 +177,7 @@ var _updateServerPackageData = async function (dataStore, options) { compressCollections: compress }); + // Is the remote server telling us to ignore everything we've heard before? // OK, we can do that. if (remoteData.resetData) { @@ -230,15 +230,19 @@ var _updateServerPackageData = async function (dataStore, options) { return ret; }; -_updateServerPackageData = Profile('package-client _updateServerPackageData', - _updateServerPackageData); +_updateServerPackageData = + Profile('package-client _updateServerPackageData', _updateServerPackageData); // Returns a logged-in DDP connection to the package server, or null if // we cannot log in. If an error unrelated to login occurs // (e.g. connection to package server times out), then it will be // thrown. -exports.loggedInPackagesConnection = function () { - return authClient.loggedInConnection( +/** + * + * @return {Promise<*>} + */ +exports.loggedInPackagesConnection = async function () { + return await authClient.loggedInConnection( config.getPackageServerUrl(), config.getPackageServerDomain(), "package-server" @@ -248,7 +252,7 @@ exports.loggedInPackagesConnection = function () { // XXX this is missing a few things. In retrospect a better approach here might // be to actually make "save source somewhere else" or perhaps "add source // to tarball" be part of the package build itself... -var bundleSource = function (isopack, includeSources, packageDir) { +var bundleSource = async function (isopack, includeSources, packageDir) { buildmessage.assertInJob(); var name = isopack.name; @@ -299,14 +303,14 @@ var bundleSource = function (isopack, includeSources, packageDir) { var packageMapFile = new projectContextModule.PackageMapFile({ filename: packageMapFilename }); - packageMapFile.write(pluginProviderPackageMap); + await packageMapFile.write(pluginProviderPackageMap); // We put this inside the temp dir because mkdtemp makes sure that the // temp dir gets cleaned up on process exit, so we don't have to worry // about cleaning up our tarball (or our copied source files) // ourselves. var sourceTarball = files.pathJoin(tempDir, packageTarName + '.tgz'); - files.createTarball(dirToTar, sourceTarball); + await files.createTarball(dirToTar, sourceTarball); var tarballHash = files.fileHash(sourceTarball); var treeHash = files.treeHash(dirToTar); @@ -321,13 +325,13 @@ var bundleSource = function (isopack, includeSources, packageDir) { // Uploads a file at a filepath to the HTTP put URL. // // Returns true on success and false on failure. -var uploadFile = function (putUrl, filepath) { +var uploadFile = async function (putUrl, filepath) { buildmessage.assertInJob(); var size = files.stat(filepath).size; var rs = files.createReadStream(filepath); try { // Use getUrl instead of request, to throw on 4xx/5xx. - httpHelpers.getUrl({ + await httpHelpers.getUrl({ method: 'PUT', url: putUrl, headers: { @@ -350,7 +354,7 @@ var uploadFile = function (putUrl, filepath) { exports.uploadFile = uploadFile; -export function bundleBuild(isopack, isopackCache) { +export async function bundleBuild(isopack, isopackCache) { buildmessage.assertInJob(); var tempDir = files.mkdtemp('bp-'); @@ -361,7 +365,7 @@ export function bundleBuild(isopack, isopackCache) { // disk in an IsopackCache, because we don't want to include // isopack-buildinfo.json. (We don't include it because we're not passing // includeIsopackBuildInfo to saveToPath here.) - isopack.saveToPath(tarInputDir, { + await isopack.saveToPath(tarInputDir, { // When publishing packages that don't use new registerCompiler plugins, // make sure that old Meteors can use it too includePreCompilerPluginIsopackVersions: true, @@ -369,11 +373,10 @@ export function bundleBuild(isopack, isopackCache) { }); var buildTarball = files.pathJoin(tempDir, packageTarName + '.tgz'); + await files.createTarball(tarInputDir, buildTarball); - files.createTarball(tarInputDir, buildTarball); - - var tarballHash = files.fileHash(buildTarball); - var treeHash = files.treeHash(tarInputDir, { + var tarballHash = files.fileHash(buildTarball); + var treeHash = files.treeHash(tarInputDir, { // We don't include any package.json from an npm module in the tree hash, // because npm isn't super consistent about what it puts in there (eg, does // it include the "readme" field)? This ends up leading to spurious @@ -393,15 +396,15 @@ export function bundleBuild(isopack, isopackCache) { }; } -function createBuiltPackage(isopack, isopackCache) { +async function createBuiltPackage(isopack, isopackCache) { buildmessage.assertInJob(); var name = isopack.name; // Note: we really want to do this before createPackageBuild, because the URL // we get from createPackageBuild will expire! var bundleResult; - buildmessage.enterJob("bundling build for " + name, function () { - bundleResult = bundleBuild(isopack, isopackCache); + await buildmessage.enterJob("bundling build for " + name, async function () { + bundleResult = await bundleBuild(isopack, isopackCache); }); if (buildmessage.jobHasMessages()) { return; @@ -410,13 +413,13 @@ function createBuiltPackage(isopack, isopackCache) { return bundleResult; } -var publishBuiltPackage = function (conn, isopack, bundleResult) { +var publishBuiltPackage = async function (conn, isopack, bundleResult) { buildmessage.assertInJob(); var name = isopack.name; var uploadInfo; - buildmessage.enterJob('creating package build for ' + name, function () { - uploadInfo = callPackageServerBM(conn, 'createPackageBuild', { + await buildmessage.enterJob('creating package build for ' + name, async function () { + uploadInfo = await callPackageServerBM(conn, 'createPackageBuild', { packageName: isopack.name, version: isopack.version, buildArchitectures: isopack.buildArchitectures() @@ -426,30 +429,34 @@ var publishBuiltPackage = function (conn, isopack, bundleResult) { return; } - buildmessage.enterJob("uploading build", function () { - uploadFile(uploadInfo.uploadUrl, - bundleResult.buildTarball); + await buildmessage.enterJob("uploading build", async function () { + await uploadFile(uploadInfo.uploadUrl, + bundleResult.buildTarball); }); if (buildmessage.jobHasMessages()) { return; } - buildmessage.enterJob('publishing package build for ' + name, function () { - callPackageServerBM(conn, 'publishPackageBuild', - uploadInfo.uploadToken, - bundleResult.tarballHash, - bundleResult.treeHash); + await buildmessage.enterJob('publishing package build for ' + name, async function () { + try { + await callPackageServerBM(conn, 'publishPackageBuild', + uploadInfo.uploadToken, + bundleResult.tarballHash, + bundleResult.treeHash); + } catch (e) { + buildmessage.error(e.message); + } }); if (buildmessage.jobHasMessages()) { return; } }; -export function createAndPublishBuiltPackage(conn, isopack, isopackCache) { - publishBuiltPackage( +export async function createAndPublishBuiltPackage(conn, isopack, isopackCache) { + await publishBuiltPackage( conn, isopack, - createBuiltPackage(isopack, isopackCache), + await createBuiltPackage(isopack, isopackCache), ); } @@ -469,7 +476,7 @@ exports.handlePackageServerConnectionError = function (error) { // package server. DO NOT CLOSE this connection here. // // Return true on success and an error code otherwise. -exports.updatePackageMetadata = function (options) { +exports.updatePackageMetadata = async function (options) { buildmessage.assertInJob(); var packageSource = options.packageSource; @@ -520,8 +527,8 @@ exports.updatePackageMetadata = function (options) { // Update the general metadata. var versionIdentifier = { packageName: name, version: version }; - buildmessage.enterJob('updating metadata', function () { - callPackageServerBM( + await buildmessage.enterJob('updating metadata', async function () { + await callPackageServerBM( conn, "changeVersionMetadata", versionIdentifier, dataToUpdate); }); if (buildmessage.jobHasMessages()) { @@ -529,17 +536,17 @@ exports.updatePackageMetadata = function (options) { } // Upload the new Readme. - buildmessage.enterJob('uploading documentation', function () { + await buildmessage.enterJob('uploading documentation', async function () { var readmePath = saveReadmeToTmp(readmeInfo); var uploadInfo = - callPackageServerBM(conn, "createReadme", versionIdentifier); - if (! uploadInfo) { + await callPackageServerBM(conn, "createReadme", versionIdentifier); + if (!uploadInfo) { return; } - if (! uploadFile(uploadInfo.url, readmePath)) { + if (!await uploadFile(uploadInfo.url, readmePath)) { return; } - callPackageServerBM( + await callPackageServerBM( conn, "publishReadme", uploadInfo.uploadToken, { hash: readmeInfo.hash }); }); if (buildmessage.jobHasMessages()) { @@ -566,7 +573,7 @@ exports.updatePackageMetadata = function (options) { // - doNotPublishBuild: do not publish the build of this package. // // Return true on success and an error code otherwise. -exports.publishPackage = function (options) { +exports.publishPackage = async function (options) { buildmessage.assertInJob(); var packageSource = options.packageSource; var conn = options.connection; @@ -609,15 +616,14 @@ exports.publishPackage = function (options) { // Check that we are an authorized maintainer of this package. if (!options['new']) { - var packRecord = catalog.official.getPackage(name); + var packRecord = await catalog.official.getPackage(name); if (! packRecord) { buildmessage.error( 'There is no package named ' + name + '. If you are creating a new package, use the --create flag.'); return; } - - if (!exports.amIAuthorized(name, conn, false)) { + if (!await exports.amIAuthorized(name, conn, false)) { buildmessage.error( 'You are not an authorized maintainer of ' + name + '. Only ' + 'authorized maintainers may publish new versions.'); @@ -626,7 +632,7 @@ exports.publishPackage = function (options) { // Check that our documentation exists (or we know that it doesn't) and has // been filled out. - var readmeInfo = buildmessage.enterJob( + var readmeInfo = await buildmessage.enterJob( "processing documentation", function () { return packageSource.processReadme(); @@ -657,10 +663,9 @@ exports.publishPackage = function (options) { if (! readmeInfo) { readmeInfo = generateBlankReadme(); } - var readmePath = saveReadmeToTmp(readmeInfo); + var readmePath = await saveReadmeToTmp(readmeInfo); var packageDeps = packageSource.getDependencyMetadata(); - // Check that the package does not have any unconstrained references. _.each(packageDeps, function(refs, label) { if (refs.constraint == null) { @@ -696,6 +701,7 @@ exports.publishPackage = function (options) { } var isopack = projectContext.isopackCache.getIsopack(name); + if (! isopack) { throw Error("no isopack " + name); } @@ -737,18 +743,18 @@ exports.publishPackage = function (options) { } var sourceBundleResult; - buildmessage.enterJob("bundling source for " + name, function () { - sourceBundleResult = bundleSource( + await buildmessage.enterJob("bundling source for " + name, async function () { + sourceBundleResult = await bundleSource( isopack, sourceFiles, packageSource.sourceRoot); }); + if (buildmessage.jobHasMessages()) { return; } - // Create the package. Check that the metadata exists. if (options.new) { - buildmessage.enterJob("creating package " + name, function () { - callPackageServerBM(conn, 'createPackage', { + await buildmessage.enterJob("creating package " + name, async function () { + await callPackageServerBM(conn, 'createPackage', { name: packageSource.name }); }); @@ -758,7 +764,7 @@ exports.publishPackage = function (options) { } if (options.existingVersion) { - var existingRecord = catalog.official.getVersion(name, version); + var existingRecord = await catalog.official.getVersion(name, version); if (! existingRecord) { buildmessage.error("Version does not exist."); return; @@ -769,7 +775,7 @@ exports.publishPackage = function (options) { } if (! options.doNotPublishBuild) { - createAndPublishBuiltPackage( + await createAndPublishBuiltPackage( conn, isopack, projectContext.isopackCache); if (buildmessage.jobHasMessages()) { @@ -780,7 +786,7 @@ exports.publishPackage = function (options) { // XXX check that we're actually providing something new? } else { var uploadInfo; - buildmessage.enterJob("pre-publishing package " + name, function () { + await buildmessage.enterJob("pre-publishing package " + name, async function () { var uploadRec = { packageName: packageSource.name, version: version, @@ -800,7 +806,7 @@ exports.publishPackage = function (options) { releaseName: release.current.name, dependencies: packageDeps }; - uploadInfo = callPackageServerBM(conn, 'createPackageVersion', uploadRec); + uploadInfo = await callPackageServerBM(conn, 'createPackageVersion', uploadRec); }); if (buildmessage.jobHasMessages()) { return; @@ -811,26 +817,28 @@ exports.publishPackage = function (options) { // publish a new build. // Documentation is smaller than the source. Upload it first, to minimize // the chances of PUT URLs expiring. (XXX: in the far future, parallelize this) - buildmessage.enterJob("uploading documentation", function () { - uploadFile(uploadInfo.readmeUrl, readmePath); + await buildmessage.enterJob("uploading documentation", async function () { + await uploadFile(uploadInfo.readmeUrl, readmePath); }); + if (buildmessage.jobHasMessages()) { return; } - buildmessage.enterJob("uploading source", function () { - uploadFile(uploadInfo.uploadUrl, sourceBundleResult.sourceTarball); + await buildmessage.enterJob("uploading source", async function () { + await uploadFile(uploadInfo.uploadUrl, sourceBundleResult.sourceTarball); }); + if (buildmessage.jobHasMessages()) { return; } if (! options.doNotPublishBuild) { - var bundleResult = createBuiltPackage( + + var bundleResult = await createBuiltPackage( isopack, projectContext.isopackCache, ); - if (buildmessage.jobHasMessages()) { return; } @@ -841,8 +849,8 @@ exports.publishPackage = function (options) { treeHash: sourceBundleResult.treeHash, readmeHash: readmeInfo.hash }; - buildmessage.enterJob("publishing package version", function () { - callPackageServerBM( + await buildmessage.enterJob("publishing package version", async function () { + await callPackageServerBM( conn, 'publishPackageVersion', uploadInfo.uploadToken, hashes); }); if (buildmessage.jobHasMessages()) { @@ -850,7 +858,7 @@ exports.publishPackage = function (options) { } if (! options.doNotPublishBuild) { - publishBuiltPackage(conn, isopack, bundleResult); + await publishBuiltPackage(conn, isopack, bundleResult); if (buildmessage.jobHasMessages()) { return; } @@ -867,12 +875,12 @@ exports.publishPackage = function (options) { // // If this returns FALSE, then we are NOT authorized. // Otherwise, return true. -exports.amIAuthorized = function (name, conn, isRelease) { +exports.amIAuthorized = async function (name, conn, isRelease) { var methodName = "amIAuthorized" + (isRelease ? "Release" : "Package"); try { - exports.callPackageServer(conn, methodName, name); + await exports.callPackageServer(conn, methodName, name); } catch (err) { if (err.error === 401) { return false; diff --git a/tools/packaging/tropohouse.js b/tools/packaging/tropohouse.js index ae39b314ac..69fe2ad17c 100644 --- a/tools/packaging/tropohouse.js +++ b/tools/packaging/tropohouse.js @@ -40,7 +40,7 @@ exports.default = new exports.Tropohouse(defaultWarehouseDir()); * Extract a package tarball, and on Windows convert file paths and metadata * @param {String} packageTarball path to tarball * @param {Boolean} forceConvert Convert paths even on unix, for testing - * @return {String} Temporary directory with contents of package + * @return {Promise} Temporary directory with contents of package */ exports._extractAndConvert = async function (packageTarball, forceConvert) { var targetDirectory = files.mkdtemp(); @@ -552,7 +552,7 @@ Object.assign(exports.Tropohouse.prototype, { var self = this; buildmessage.assertInCapture(); options = options || {}; - var serverArchs = options.serverArchitectures || [await archinfo.host()]; + var serverArchs = options.serverArchitectures || [archinfo.host()]; var downloader; var downloaders = []; diff --git a/tools/project-context.js b/tools/project-context.js index ea1355a78b..9dd2a752cf 100644 --- a/tools/project-context.js +++ b/tools/project-context.js @@ -157,7 +157,7 @@ Object.assign(ProjectContext.prototype, { self._serverArchitectures = options.serverArchitectures || []; // We always need to download host versions of packages, at least for // plugins. - self._serverArchitectures.push(await archinfo.host()); + self._serverArchitectures.push(archinfo.host()); self._serverArchitectures = _.uniq(self._serverArchitectures); // test-packages overrides this to load local packages from your real app @@ -601,7 +601,6 @@ Object.assign(ProjectContext.prototype, { _resolveConstraints: Profile('_resolveConstraints', async function () { var self = this; buildmessage.assertInJob(); - var depsAndConstraints = await self._getRootDepsAndConstraints(); // If this is in the runner and we have reset this ProjectContext for a // rebuild, use the versions we calculated last time in this process (which @@ -826,9 +825,8 @@ Object.assign(ProjectContext.prototype, { _initializeCatalog: Profile('_initializeCatalog', async function () { var self = this; buildmessage.assertInJob(); - - await catalog.runAndRetryWithRefreshIfHelpful(function () { - return buildmessage.enterJob( + await catalog.runAndRetryWithRefreshIfHelpful(async function () { + return await buildmessage.enterJob( "scanning local packages", async function () { self.localCatalog = new catalogLocal.LocalCatalog(); diff --git a/tools/tests/colon-converter-tests.js b/tools/tests/colon-converter-tests.js index 5f2fa7a8f4..de3efee2c1 100644 --- a/tools/tests/colon-converter-tests.js +++ b/tools/tests/colon-converter-tests.js @@ -82,7 +82,7 @@ if (process.platform !== "win32") { // This test is only for unixy platforms if (process.platform !== "win32") { - selftest.define("package with colons is unpacked as-is on unix", function () { + selftest.define("package with colons is unpacked as-is on unix", async function () { // We have a built package tarball in the git repo var tarballPath = files.pathJoin(files.convertToStandardPath(__dirname), "built-packages", "has-colons.tgz"); @@ -97,8 +97,8 @@ if (process.platform !== "win32") { var targetDirectory = tropohouse._extractAndConvert(tarball); // Now, compare all of the filepaths and file contents - var startingTreeHash = files.treeHash(extractPath); - var finalTreeHash = files.treeHash(targetDirectory); + var startingTreeHash = files.treeHash(extractPath); + var finalTreeHash = files.treeHash(targetDirectory); // Nothing should be different selftest.expectEqual(finalTreeHash, startingTreeHash); @@ -108,7 +108,7 @@ if (process.platform !== "win32") { // Tests step 3: check if old packages are converted properly to have no weird // paths for Windows -selftest.define("package with colons is converted on Windows", function () { +selftest.define("package with colons is converted on Windows", async function () { // We have a built package tarball in the git repo var tarballPath = files.pathJoin(files.convertToStandardPath(__dirname), "built-packages", "has-colons.tgz"); @@ -117,7 +117,7 @@ selftest.define("package with colons is converted on Windows", function () { var tarball = files.readFile(tarballPath); // Force conversion of file paths with second argument - var targetDirectory = tropohouse._extractAndConvert(tarball, true); + var targetDirectory = await tropohouse._extractAndConvert(tarball, true); // Uncomment below to check results // console.log(files.getPathsInDir(targetDirectory, { diff --git a/tools/tests/galaxy.js b/tools/tests/galaxy.js index f6c6eb747c..7a60d2289f 100644 --- a/tools/tests/galaxy.js +++ b/tools/tests/galaxy.js @@ -210,7 +210,7 @@ selftest.define('galaxy self-signed cert', ['galaxy'], async function () { // Create a signed certificate for the app. // createSelfSignedCertificateForApp: function (appId, options) { var appRecord = galaxyUtils.getAppRecordByName(appName); - var conn = galaxyUtils.loggedInGalaxyAPIConnection(); + var conn = await galaxyUtils.loggedInGalaxyAPIConnection(); var certIds = []; for (let range = 0; range <= 14; range++) { certIds.push(await galaxyUtils.callGalaxyAPI( diff --git a/tools/tests/tarball.js b/tools/tests/tarball.js index dcf10652de..d9f15a5f49 100644 --- a/tools/tests/tarball.js +++ b/tools/tests/tarball.js @@ -19,7 +19,7 @@ selftest.define("create and extract tarball with long paths", async function () // Make the tarball var tarballOutputDir = files.mkdtemp("tarball"); var tarballOutputFile = files.pathJoin(tarballOutputDir, "out.tar.gz"); - files.createTarball(tarballInputDir, tarballOutputFile); + await files.createTarball(tarballInputDir, tarballOutputFile); // Extract the tarball and verify that the single file we created is // present with the expected contents. diff --git a/tools/tool-env/isopackets.js b/tools/tool-env/isopackets.js index 9bd6037291..d2c21afd6d 100644 --- a/tools/tool-env/isopackets.js +++ b/tools/tool-env/isopackets.js @@ -98,7 +98,7 @@ export async function loadIsopackage(packageName, isopacketName = "combined") { // it yields the first time we call it, which is a problem for the // fiberHelpers.noYieldsAllowed block below. Calling it here ensures the // result is cached, so no yielding occurs later. - assert.strictEqual((await archinfo.host()).split(".", 1)[0], "os"); + assert.strictEqual((archinfo.host()).split(".", 1)[0], "os"); async function load() { if (_.has(loadedIsopackets, isopacketName)) { diff --git a/tools/tool-testing/sandbox.js b/tools/tool-testing/sandbox.js index 1f77b052fd..2a1b8efa3d 100644 --- a/tools/tool-testing/sandbox.js +++ b/tools/tool-testing/sandbox.js @@ -489,7 +489,7 @@ export default class Sandbox { // XXX this is hacky await files.linkToMeteorScript( files.pathJoin(this.warehouse, packagesDirectoryName, "meteor-tool", toolPackageVersion, - 'mt-' + await archInfoHost(), 'meteor'), + 'mt-' + archInfoHost(), 'meteor'), files.pathJoin(this.warehouse, 'meteor')); } } diff --git a/tools/utils/archinfo.ts b/tools/utils/archinfo.ts index df524781b9..08ce68955f 100644 --- a/tools/utils/archinfo.ts +++ b/tools/utils/archinfo.ts @@ -135,22 +135,22 @@ export const VALID_ARCHITECTURES: Record = { }; // Returns the fully qualified arch of this host -- something like -// "os.linux.x86_32" or "os.osx.x86_64". Must be called inside -// a fiber. Throws an error if it's not a supported architecture. +// "os.linux.x86_32" or "os.osx.x86_64". +// Throws an error if it's not a supported architecture. // // If you change this, also change scripts/admin/launch-meteor let _host: string | null = null; // memoize -export async function host() { +export function host() { if (!_host) { - const run = async function (...args: Array) { - const result = (await utils.execFile(args[0], args.slice(1))).stdout; + const run = function (...args: Array) { + const result = utils.execFileSync(args[0], args.slice(1)).stdout; if (! result) { throw new Error(`Can't get arch with ${args.join(" ")}?`); } - return result.replace(/\s*$/, ''); // trailing whitespace + return result.replace(/\s*$/, ''); // remove trailing whitespace }; const platform = os.platform(); @@ -158,10 +158,10 @@ export async function host() { if (platform === "darwin") { // Can't just test uname -m = x86_64, because Snow Leopard can // return other values. - const arch = await run('uname', '-p'); + const arch = run('uname', '-p'); if ((arch !== "i386" && arch !== "arm") || - await run('sysctl', '-n', 'hw.cpu64bit_capable') !== "1") { + run('sysctl', '-n', 'hw.cpu64bit_capable') !== "1") { throw new Error("Only 64-bit Intel and M1 processors are supported on OS X"); } if(arch === "arm"){ @@ -170,7 +170,7 @@ export async function host() { _host = "os.osx.x86_64"; } } else if (platform === "linux") { - const machine = await run('uname', '-m'); + const machine = run('uname', '-m'); if (["x86_64", "amd64", "ia64"].includes(machine)) { _host = "os.linux.x86_64"; } else { diff --git a/tools/utils/utils.js b/tools/utils/utils.js index 63eb667e1b..8ccd4f5b5a 100644 --- a/tools/utils/utils.js +++ b/tools/utils/utils.js @@ -135,7 +135,7 @@ exports.getHost = async function (...args) { } }; - if (archinfo.matches(await archinfo.host(), 'os.osx')) { + if (archinfo.matches(archinfo.host(), 'os.osx')) { // On OSX, to get the human-readable hostname that the user chose, // we call: // scutil --get ComputerName @@ -146,8 +146,8 @@ exports.getHost = async function (...args) { } } - if (archinfo.matches(await archinfo.host(), 'os.osx') || - archinfo.matches(await archinfo.host(), 'os.linux')) { + if (archinfo.matches(archinfo.host(), 'os.osx') || + archinfo.matches(archinfo.host(), 'os.linux')) { // On Unix-like platforms, try passing -s to hostname to strip off // the domain name, to reduce the extent to which the output // varies with DNS. @@ -181,7 +181,7 @@ exports.getAgentInfo = async function () { ret.agent = "Meteor"; ret.agentVersion = files.inCheckout() ? "checkout" : files.getToolsVersion(); - ret.arch = await archinfo.host(); + ret.arch = archinfo.host(); return ret; }; @@ -512,6 +512,36 @@ exports.isValidVersion = function (version, {forCordova}) { || (forCordova ? exports.isUrlWithSha(version): exports.isNpmUrl(version)); }; +exports.execFileSync = function (file, args, opts) { + var child_process = require('child_process'); + + opts = opts || {}; + if (!_.has(opts, 'maxBuffer')) { + opts.maxBuffer = 1024 * 1024 * 10; + } + + if (!_.has(opts, 'encoding')) { + opts.encoding = 'utf8'; + } + + let result; + try { + result = child_process.execFileSync(file, args, opts); + } catch (error) { + return { + success: false, + stdout: error.stdout, + stderr: error.stderr + }; + } + + return { + stdout: result, + success: true, + stderr: '' + }; +} + exports.execFile = async function (file, args, opts) { var child_process = require('child_process');