diff --git a/.circleci/config.yml b/.circleci/config.yml index 8ce247cde2..629a9aed1d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -674,7 +674,7 @@ jobs: --headless \ --junit ./tmp/results/junit/11.xml \ --without-tag "custom-warehouse" - no_output_timeout: 30m + no_output_timeout: 35m - run: <<: *run_save_node_bin - store_test_results: diff --git a/docs/_config.yml b/docs/_config.yml index 5dbbd961c0..323a85778f 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -61,6 +61,7 @@ sidebar_categories: - api/packagejs - api/mobile-config - api/environment + - api/top-level-await Packages: - packages/accounts-ui - packages/accounts-passwordless diff --git a/docs/jsdoc/jsdoc-conf.json b/docs/jsdoc/jsdoc-conf.json index 7fb88d1887..82ed30dd10 100644 --- a/docs/jsdoc/jsdoc-conf.json +++ b/docs/jsdoc/jsdoc-conf.json @@ -5,8 +5,6 @@ "packages/test-in-browser/diff_match_patch_uncompressed.js", "packages/jquery/jquery.js", "packages/underscore/underscore.js", - "packages/accounts-password/password_server.js", - "packages/webapp/webapp_server.js", "packages/json/json2.js", "packages/minimongo/minimongo_tests.js", "tools/node_modules", @@ -15,10 +13,6 @@ "guide", "**/node_modules", "npm-packages" - ], - "include": [ - "packages/accounts-password/password_server.docs.js", - "packages/webapp/webapp_server.docs.js" ] }, "plugins": [ "plugins/markdown"], diff --git a/docs/jsdoc/strip-tla.js b/docs/jsdoc/strip-tla.js deleted file mode 100644 index f7e8732955..0000000000 --- a/docs/jsdoc/strip-tla.js +++ /dev/null @@ -1,50 +0,0 @@ -const fs = require("fs").promises; - -// if we have more files with tla just add them here and make sure to add them -// as well to jsdoc-conf.json in the exclude section and their counterparts -// with .docs.js extension -const pathsWithTLA = [ - "packages/accounts-password/password_server.js", - "packages/webapp/webapp_server.js", -]; - -/** - * - * @param {string} path - * @returns {Promise<[string, Error]>} - */ -async function getFile(path) { - try { - const data = await fs.readFile(path, "utf8"); - return [data, null]; - } catch (e) { - console.error(e); - return ["", e]; - } -} - -(async function () { - for (const path of pathsWithTLA) { - const [code, error] = await getFile(`../${path}`); - if (error) return "ERR"; - /** - * @type {string[]} - */ - let file = []; - // the complexity of this is O(n^2) but it's not a big deal since we are only - // doing this for a few files. - for (line of code.split("\n")) { - // this is a hack to remove the await keyword from the top level. - if (line.startsWith("await")) { - line = line.replace("await", ""); - } - file.push(line); - } - - await fs.writeFile( - `../${path.replace(".js", ".docs.js")}`, - file.join("\n"), - "utf8" - ); - } -})(); diff --git a/docs/package-lock.json b/docs/package-lock.json index 623b2f93ef..8aedeac6db 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -4,6 +4,43 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.5.tgz", + "integrity": "sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==", + "dev": true + }, + "@jsdoc/salty": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz", + "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "dev": true + }, + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "requires": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "dev": true + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -559,20 +596,12 @@ "optional": true }, "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", "dev": true, "requires": { - "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } + "lodash": "^4.17.15" } }, "center-align": { @@ -2902,12 +2931,12 @@ } }, "js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, "requires": { - "xmlcreate": "^1.0.1" + "xmlcreate": "^2.0.4" } }, "jsbn": { @@ -2918,35 +2947,50 @@ "optional": true }, "jsdoc": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", - "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", + "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", "dev": true, "requires": { - "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", - "taffydb": "2.6.2", - "underscore": "~1.8.3" + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" }, "dependencies": { - "babylon": { - "version": "7.0.0-beta.19", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", - "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", "dev": true } } @@ -3020,9 +3064,9 @@ } }, "klaw": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", - "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", "dev": true, "requires": { "graceful-fs": "^4.1.9" @@ -3059,6 +3103,15 @@ "source-map": "^0.5.3" } }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -3202,10 +3255,43 @@ "nopt": "~2.1.1" } }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + } + } + }, + "markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true + }, "marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true }, "math-random": { @@ -3214,6 +3300,12 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, "meteor-hexo-config": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/meteor-hexo-config/-/meteor-hexo-config-1.0.12.tgz", @@ -3607,6 +3699,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" }, @@ -3615,7 +3708,8 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "dev": true, + "optional": true } } }, @@ -4901,20 +4995,12 @@ "dev": true }, "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", "dev": true, "requires": { - "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } + "lodash": "^4.17.21" } }, "resolve": { @@ -5437,9 +5523,9 @@ "dev": true }, "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": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "striptags": { @@ -5528,12 +5614,6 @@ } } }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -5642,6 +5722,12 @@ "dev": true, "optional": true }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, "uglify-js": { "version": "3.13.5", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", @@ -5883,9 +5969,9 @@ "optional": true }, "xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, "y18n": { diff --git a/docs/package.json b/docs/package.json index c9e70f90d9..f1380be5a7 100644 --- a/docs/package.json +++ b/docs/package.json @@ -16,17 +16,15 @@ "hexo-renderer-marked": "2.0.0", "hexo-server": "1.0.0", "hexo-versioned-netlify-redirects": "1.1.0", - "jsdoc": "3.5.5", + "jsdoc": "^4.0.2", "meteor-hexo-config": "1.0.12", "meteor-theme-hexo": "2.0.3", "showdown": "1.9.1", "underscore": "1.13.1" }, "scripts": { - "strip-tla": "node ./jsdoc/strip-tla.js", "generate-history": "node ./generators/changelog/script.js", - "codegen": "npm run strip-tla && npm run generate-history", - "build": "npm run codegen && jsdoc/jsdoc.sh && chexo meteor-hexo-config -- generate", + "build": "npm run generate-history && jsdoc/jsdoc.sh && chexo meteor-hexo-config -- generate", "clean": "hexo clean; rm data/data.js data/names.json", "test": "npm run clean; npm run build", "predeploy": "npm run build", diff --git a/docs/source/api/top-level-await.md b/docs/source/api/top-level-await.md new file mode 100644 index 0000000000..accc3f84d7 --- /dev/null +++ b/docs/source/api/top-level-await.md @@ -0,0 +1,122 @@ +--- +title: Top Level Await +description: Documentation of how to use top level await in Meteor +--- + +[Top level await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#top_level_await) (TLA) allows you to use `await` in the top level of a module or file instead of only in async functions. One way to view it as every file runs inside an `async` function. + +Here is an example of using top level await on the server. When this file is loaded, the `await` will cause the module to wait for the count before the code in the rest of the module is run. + +```js +const Links = new Mongo.Collection('links'); + +// Async code using top level await. +// The module waits for this to finish before continuing +const count = await Links.find().countAsync(); + +if (count === 0) { + await Links.insertAsync({ url: 'https://meteor.com' }); +} +``` + +In previous versions of Meteor, async code using fibers could be run in the top level of a module. Top level await allows writing similar code that works without fibers. There are a few differences that this article will cover. + +Meteor's implementation of top level await tries to closely follow the specification. There currently are some differences with how Meteor handles circular dependencies. + +## Using Top Level Await + +Top level await can be used in any app or package that uses the `ecmascript`, `typescript`, or `coffeescript` packages, or that uses any other build plugin that compiles top level await using reify. +Generally, if you can use ECMAScript modules, then you can also use top level await. + +There are some extra considerations when using top level await in packages. They are covered later in this article. + +Top level await is only enabled by default on the server. You can enable it for the client by setting the env var `METEOR_ENABLE_CLIENT_TOP_LEVEL_AWAIT` to `true`. There are a couple known issues with using TLA on the client: + +1. It breaks any files in `/client/compatibility` since it now wraps those files in a function +2. Hot module replacement has not been updated to work with TLA + +## Async Modules + +With top level await, some modules are considered async, which affects how they behave. There are two ways a module can become an async module: +1. It uses top level await +2. It imports a module that is async + +For example, this module (`setup.js`) would be async because it uses top level await: + +```js +await setupLanguages(); +``` + +This module (`main.js`) would be sync: + +```js +console.log('in main.js'); +``` + +However, if it imports `setup.js` which does use top level await, then `main.js` also becomes async. + +```js +import './setup.js'; + +console.log('in main.js'); +``` + +## Require + +When using `require` to load an async module, instead of directly returning a module's exports, it will return a promise that resolves to the module's exports. + +```js +// resolves to the exports of init.js +const promise = require('./init.js'); +``` + +If you are using `require`, this does mean you need to be careful when adding or removing top level await in a file since you also have to update where the module is required. +Since a module becomes async if it depends on an async module, this could affect more than just the individual modules using top level await. + +When possible, you can use ecmascript import syntax or dynamic imports instead so you don't have to worry about which modules are sync or async. + +## Nested Imports + +Nested imports refer to using `import ...` outside of the root of a module, for example in an if block or a function. + +```js +if (Meteor.isClient) { + import './init-client.js'; +} + +export function showNotification(message) { + import show from './notifications.js'; + + show(message); +} +``` + + This is a feature unique to Meteor, so the top level await specification wasn't written to work with nested imports. Using nested imports to import a sync module continues to work, but it will throw an error if used to import an async module. You can use `require` or dynamic imports for async modules in these situations. + +## Using in Packages + +Top level await is only supported starting in Meteor 3. Published build plugins are able to use top level await in older Meteor versions since the runtime is bundled when they are published, though in development they require Meteor 3. + +If you want to ensure your package only runs in versions of Meteor that support top level await, you can have your package use `isobuild:top-level-await`: + +```js +Package.onUse(function (api) { + // Do not allow this package to be used in pre-Meteor 3 apps. + api.use("isobuild:top-level-await@3.0.0"); +}); +``` + +When importing a package that does not have a lazy main module, it will work the same whether a package uses top level await or not. This is true even when using `require`. This allows packages to add or remove top level await without it being a breaking change. + +There are a couple cases where adding or removing top level await from a module in a package could be considered a breaking change: + +1. If specific modules are require'd from a package. For example: `require('meteor/zodern:aurorae/svelte.js')`. When importing a specific module from a package, `require` changes its behavior based on if the module is async or not. +2. If a package that has lazy main modules is require'd. Unlike normal packages, `require` will return a promise if the lazy main module is an async module. Changing if the lazy main module is async or not should be considered a breaking change for the package. + +## Module and Package Execution Order + +Normally, modules are run one at a time. This was even true when using async code with fibers in the root of a module. However, top level await is different - it allows siblings (modules that do not depend on each other) to sometimes run in parallel. This can allow the app to load faster, which is especially important on the client. However, this could cause code to run in an unexpected order if you are used to how Meteor worked with fibers. + +This is also applies to packages. Packages that do not directly or indirectly depend on each other are able to load in parallel if they use top level await. + +Modules that are eagerly evaluated (added in packages with `api.addFiles`, or outside of `imports` in apps that do not have a main module) and not directly imported continue to run one at a time, even if they use top level await, since it is common for these modules to implicitly depend on the previous modules. diff --git a/packages/accounts-2fa/package.js b/packages/accounts-2fa/package.js index c60f91e67d..2808a595fd 100644 --- a/packages/accounts-2fa/package.js +++ b/packages/accounts-2fa/package.js @@ -1,5 +1,5 @@ Package.describe({ - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', summary: 'Package used to enable two factor authentication through OTP protocol', }); diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 57deb478eb..71263e9b99 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'A user account system', - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-facebook/package.js b/packages/accounts-facebook/package.js index fbde1ca3e0..5616687013 100644 --- a/packages/accounts-facebook/package.js +++ b/packages/accounts-facebook/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Facebook accounts", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-github/package.js b/packages/accounts-github/package.js index 62cf38f4a5..9e3e41a1bb 100644 --- a/packages/accounts-github/package.js +++ b/packages/accounts-github/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Login service for Github accounts', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-google/package.js b/packages/accounts-google/package.js index d9f925db7d..c5866cd9b4 100644 --- a/packages/accounts-google/package.js +++ b/packages/accounts-google/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Google accounts", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-meetup/package.js b/packages/accounts-meetup/package.js index bc64383978..f8347d1be0 100644 --- a/packages/accounts-meetup/package.js +++ b/packages/accounts-meetup/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Login service for Meetup accounts', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-meteor-developer/package.js b/packages/accounts-meteor-developer/package.js index 07f61b4ad8..3bc010ea6c 100644 --- a/packages/accounts-meteor-developer/package.js +++ b/packages/accounts-meteor-developer/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Login service for Meteor developer accounts', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-oauth/package.js b/packages/accounts-oauth/package.js index f1bfd4004e..150169fade 100644 --- a/packages/accounts-oauth/package.js +++ b/packages/accounts-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth-based login services", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-password/package.js b/packages/accounts-password/package.js index cb28747312..93b3eb0b5e 100644 --- a/packages/accounts-password/package.js +++ b/packages/accounts-password/package.js @@ -5,7 +5,7 @@ Package.describe({ // 2.2.x in the future. The version was also bumped to 2.0.0 temporarily // during the Meteor 1.5.1 release process, so versions 2.0.0-beta.2 // through -beta.5 and -rc.0 have already been published. - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/accounts-passwordless/package.js b/packages/accounts-passwordless/package.js index 945ef9178f..758c3486e8 100644 --- a/packages/accounts-passwordless/package.js +++ b/packages/accounts-passwordless/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'No-password login/sign-up support for accounts', - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-twitter/package.js b/packages/accounts-twitter/package.js index ac44378c74..0e13ab3613 100644 --- a/packages/accounts-twitter/package.js +++ b/packages/accounts-twitter/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Twitter accounts", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-ui-unstyled/package.js b/packages/accounts-ui-unstyled/package.js index 3f3a66fc10..42e5c4d30e 100644 --- a/packages/accounts-ui-unstyled/package.js +++ b/packages/accounts-ui-unstyled/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Unstyled version of login widgets', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function(api) { diff --git a/packages/accounts-ui/package.js b/packages/accounts-ui/package.js index afdc7b6300..6d8da78b91 100644 --- a/packages/accounts-ui/package.js +++ b/packages/accounts-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Simple templates to add login widgets to an app", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/accounts-weibo/package.js b/packages/accounts-weibo/package.js index b47f30fe2e..5a8fe6fddb 100644 --- a/packages/accounts-weibo/package.js +++ b/packages/accounts-weibo/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Sina Weibo accounts", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/allow-deny/package.js b/packages/allow-deny/package.js index 32541bd2d2..477676e1d7 100644 --- a/packages/allow-deny/package.js +++ b/packages/allow-deny/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'allow-deny', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', // Brief, one-line summary of the package. summary: 'Implements functionality for allow/deny and client-side db operations', // URL to the Git repository containing the source code for this package. diff --git a/packages/appcache/package.js b/packages/appcache/package.js index d5c63bbc98..3180c4d110 100644 --- a/packages/appcache/package.js +++ b/packages/appcache/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Enable the application cache in the browser", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', deprecated: true, }); diff --git a/packages/audit-argument-checks/package.js b/packages/audit-argument-checks/package.js index 3a0dafdef8..9021ea19dd 100644 --- a/packages/audit-argument-checks/package.js +++ b/packages/audit-argument-checks/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Try to detect inadequate input sanitization", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); // This package is empty; its presence is detected by livedata. diff --git a/packages/autopublish/package.js b/packages/autopublish/package.js index bc8a037d91..1b477ec3a8 100644 --- a/packages/autopublish/package.js +++ b/packages/autopublish/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "(For prototyping only) Publish the entire database to all clients", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); // This package is empty; its presence is detected by several other packages diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index d73392bbb9..2e1b30f810 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Update the client when new client code is available', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function(api) { diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index aafb651b64..04ae89b2bd 100644 --- a/packages/babel-compiler/package.js +++ b/packages/babel-compiler/package.js @@ -1,7 +1,7 @@ Package.describe({ name: "babel-compiler", summary: "Parser/transpiler for ECMAScript 2015+ syntax", - version: '8.0.0-alpha300.6', + version: '8.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/babel-runtime/package.js b/packages/babel-runtime/package.js index 6c793d75d5..36409bd6ac 100644 --- a/packages/babel-runtime/package.js +++ b/packages/babel-runtime/package.js @@ -1,7 +1,7 @@ Package.describe({ name: "babel-runtime", summary: "Runtime support for output of Babel transpiler", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: 'README.md' }); diff --git a/packages/base64/package.js b/packages/base64/package.js index 78aabbd526..2212d0e9e0 100644 --- a/packages/base64/package.js +++ b/packages/base64/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Base64 encoding and decoding", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/binary-heap/package.js b/packages/binary-heap/package.js index 3a295f4187..709bb9e5e2 100644 --- a/packages/binary-heap/package.js +++ b/packages/binary-heap/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Binary Heap datastructure implementation", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/boilerplate-generator-tests/package.js b/packages/boilerplate-generator-tests/package.js index 4aec47bd2f..217936756e 100644 --- a/packages/boilerplate-generator-tests/package.js +++ b/packages/boilerplate-generator-tests/package.js @@ -2,7 +2,7 @@ Package.describe({ // These tests are in a separate package so that we can Npm.depend on // parse5, a html parsing library. summary: "Tests for the boilerplate-generator package", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/boilerplate-generator/package.js b/packages/boilerplate-generator/package.js index 4cb6ad695e..cf28fcff1c 100644 --- a/packages/boilerplate-generator/package.js +++ b/packages/boilerplate-generator/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Generates the boilerplate html from program's manifest", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/browser-policy-common/package.js b/packages/browser-policy-common/package.js index 37d7e68700..979cb1954b 100644 --- a/packages/browser-policy-common/package.js +++ b/packages/browser-policy-common/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for browser-policy packages", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/browser-policy-content/package.js b/packages/browser-policy-content/package.js index fcc4f75471..54088f71eb 100644 --- a/packages/browser-policy-content/package.js +++ b/packages/browser-policy-content/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Configure content security policies", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/browser-policy-framing/package.js b/packages/browser-policy-framing/package.js index 2559990757..534d77a618 100644 --- a/packages/browser-policy-framing/package.js +++ b/packages/browser-policy-framing/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Restrict which websites can frame your app", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/browser-policy/package.js b/packages/browser-policy/package.js index 78d9db9fcd..79e2700268 100644 --- a/packages/browser-policy/package.js +++ b/packages/browser-policy/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Configure security policies enforced by the browser", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/caching-compiler/package.js b/packages/caching-compiler/package.js index d75bec4171..4103ec69b7 100644 --- a/packages/caching-compiler/package.js +++ b/packages/caching-compiler/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'caching-compiler', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', summary: 'An easy way to make compiler plugins cache', documentation: 'README.md' }); diff --git a/packages/callback-hook/package.js b/packages/callback-hook/package.js index 7c3d3cfe09..fc675374e4 100644 --- a/packages/callback-hook/package.js +++ b/packages/callback-hook/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Register callbacks on a hook", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/check/package.js b/packages/check/package.js index 63cde7f3f6..4f7708b998 100644 --- a/packages/check/package.js +++ b/packages/check/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Check whether a value matches a pattern', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/constraint-solver/package.js b/packages/constraint-solver/package.js index 8f016983b6..51cac4cb67 100644 --- a/packages/constraint-solver/package.js +++ b/packages/constraint-solver/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Given the set of the constraints, picks a satisfying configuration", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/context/package.js b/packages/context/package.js index 9f6e577ce0..d2f933da84 100644 --- a/packages/context/package.js +++ b/packages/context/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "context", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Manage contextual information without passing objects around", documentation: "README.md" }); diff --git a/packages/core-runtime/package.js b/packages/core-runtime/package.js index a61f0f4dd5..07521b6bea 100644 --- a/packages/core-runtime/package.js +++ b/packages/core-runtime/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Core runtime to load packages and the app", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/crosswalk/package.js b/packages/crosswalk/package.js index 4087cc5b79..1d5c41532b 100644 --- a/packages/crosswalk/package.js +++ b/packages/crosswalk/package.js @@ -1,7 +1,7 @@ Package.describe({ summary: "Makes your Cordova application use the Crosswalk WebView \ instead of the System WebView on Android", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/ddp-client/package.js b/packages/ddp-client/package.js index ddd7b6c894..50b6909df8 100644 --- a/packages/ddp-client/package.js +++ b/packages/ddp-client/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data client", - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', documentation: null }); diff --git a/packages/ddp-common/package.js b/packages/ddp-common/package.js index 75347446ff..f9dad6dc51 100644 --- a/packages/ddp-common/package.js +++ b/packages/ddp-common/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Code shared beween ddp-client and ddp-server", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/ddp-rate-limiter/package.js b/packages/ddp-rate-limiter/package.js index ec5c24a9f8..9c450c8978 100644 --- a/packages/ddp-rate-limiter/package.js +++ b/packages/ddp-rate-limiter/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ddp-rate-limiter', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', // Brief, one-line summary of the package. summary: 'The DDPRateLimiter allows users to add rate limits to DDP' + ' methods and subscriptions.', diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 0ee49d1edc..561025f3ee 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data server", - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', documentation: null }); diff --git a/packages/ddp/package.js b/packages/ddp/package.js index 9b269452d7..11ecf2878a 100644 --- a/packages/ddp/package.js +++ b/packages/ddp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data framework", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/deprecated/markdown/package.js b/packages/deprecated/markdown/package.js index 5ce38a941e..5e93cd7845 100644 --- a/packages/deprecated/markdown/package.js +++ b/packages/deprecated/markdown/package.js @@ -2,15 +2,16 @@ Package.describe({ summary: "Markdown-to-HTML processor", - version: "3.0.0-alpha300.6", + version: "3.0.0-alpha300.9", deprecated: true, documentation: 'README.md' }); Package.onUse(function (api) { - api.use('ecmascript@1.0.0-alpha300.6'); - api.use("templating@2.0.0-alpha300.6", "client", {weak: true}); - api.mainModule('template-integration.js', 'client'); + api.versionsFrom('3.0-alpha.6'); + api.use('ecmascript@1.0.0-alpha300.9'); + api.use("templating@2.0.0-alpha300.9", "client", {weak: true}); + api.mainModule('template-integration.js', 'client', { lazy: true }); }); Package.onTest(function (api) { diff --git a/packages/dev-error-overlay/package.js b/packages/dev-error-overlay/package.js index 7ab312bdb1..f51962da97 100644 --- a/packages/dev-error-overlay/package.js +++ b/packages/dev-error-overlay/package.js @@ -1,5 +1,5 @@ Package.describe({ - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'Show build errors in client when using HMR', documentation: 'README.md', devOnly: true diff --git a/packages/diff-sequence/package.js b/packages/diff-sequence/package.js index 0a3a045f95..d93a299a21 100644 --- a/packages/diff-sequence/package.js +++ b/packages/diff-sequence/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "An implementation of a diff algorithm on arrays and objects.", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/disable-oplog/package.js b/packages/disable-oplog/package.js index 0e7028c615..5a61c4c5f4 100644 --- a/packages/disable-oplog/package.js +++ b/packages/disable-oplog/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Disables oplog tailing", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); // This package is empty; its presence is detected by mongo-livedata. diff --git a/packages/dynamic-import/package.js b/packages/dynamic-import/package.js index 95e0543ae3..7efe3bdfc9 100644 --- a/packages/dynamic-import/package.js +++ b/packages/dynamic-import/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "dynamic-import", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Runtime support for Meteor 1.5 dynamic import(...) syntax", documentation: "README.md" }); diff --git a/packages/ecmascript-runtime-client/package.js b/packages/ecmascript-runtime-client/package.js index 9f54ddaa27..b3f0df3fb7 100644 --- a/packages/ecmascript-runtime-client/package.js +++ b/packages/ecmascript-runtime-client/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ecmascript-runtime-client', - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'Polyfills for new ECMAScript 2015 APIs like Map and Set', git: 'https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client', diff --git a/packages/ecmascript-runtime-server/package.js b/packages/ecmascript-runtime-server/package.js index 23485b7cff..75d49560c2 100644 --- a/packages/ecmascript-runtime-server/package.js +++ b/packages/ecmascript-runtime-server/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime-server", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/meteor/tree/devel/packages/ecmascript-runtime-client", documentation: "README.md" diff --git a/packages/ecmascript-runtime/package.js b/packages/ecmascript-runtime/package.js index cb410abdf8..28a74cc47a 100644 --- a/packages/ecmascript-runtime/package.js +++ b/packages/ecmascript-runtime/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "ecmascript-runtime", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set", git: "https://github.com/meteor/ecmascript-runtime", documentation: "README.md" diff --git a/packages/ecmascript/package.js b/packages/ecmascript/package.js index b0393de26e..28b3186b35 100644 --- a/packages/ecmascript/package.js +++ b/packages/ecmascript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ecmascript', - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'Compiler plugin that supports ES2015+ in all .js files', documentation: 'README.md', }); diff --git a/packages/ejson/package.js b/packages/ejson/package.js index ed3b9efa81..f019181bd1 100644 --- a/packages/ejson/package.js +++ b/packages/ejson/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Extended and Extensible JSON library', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function onUse(api) { diff --git a/packages/email/package.js b/packages/email/package.js index 9a9708b4bf..f000f74cca 100644 --- a/packages/email/package.js +++ b/packages/email/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Send email messages', - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/es5-shim/package.js b/packages/es5-shim/package.js index 849a2db3ab..529be82b89 100644 --- a/packages/es5-shim/package.js +++ b/packages/es5-shim/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "es5-shim", - version: '5.0.0-alpha300.6', + version: '5.0.0-alpha300.9', summary: "Shims and polyfills to improve ECMAScript 5 support", documentation: "README.md" }); diff --git a/packages/facebook-config-ui/package.js b/packages/facebook-config-ui/package.js index e6716142f9..735cf4fbf6 100644 --- a/packages/facebook-config-ui/package.js +++ b/packages/facebook-config-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Blaze configuration templates for Facebook OAuth.", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/facebook-oauth/package.js b/packages/facebook-oauth/package.js index 964ac7665e..0aa5afec7b 100644 --- a/packages/facebook-oauth/package.js +++ b/packages/facebook-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Facebook OAuth flow", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/facts-base/package.js b/packages/facts-base/package.js index 7076f45ea2..c78fd61dea 100644 --- a/packages/facts-base/package.js +++ b/packages/facts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Publish internal app statistics", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/facts-ui/package.js b/packages/facts-ui/package.js index 80a678c882..931f8a64d0 100644 --- a/packages/facts-ui/package.js +++ b/packages/facts-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Display internal app statistics", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 29cbbe0c19..6746aca3fc 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); diff --git a/packages/force-ssl-common/package.js b/packages/force-ssl-common/package.js index 64c935a093..145b5a2ec9 100644 --- a/packages/force-ssl-common/package.js +++ b/packages/force-ssl-common/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Internal force-ssl common code.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/force-ssl/package.js b/packages/force-ssl/package.js index 764562c5c2..0c60b4883e 100644 --- a/packages/force-ssl/package.js +++ b/packages/force-ssl/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Require this application to use HTTPS", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', prodOnly: true }); diff --git a/packages/geojson-utils/package.js b/packages/geojson-utils/package.js index 7219592253..98a0a27b2f 100644 --- a/packages/geojson-utils/package.js +++ b/packages/geojson-utils/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'GeoJSON utility functions (from https://github.com/maxogden/geojson-js-utils)', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/github-config-ui/package.js b/packages/github-config-ui/package.js index 9448172ce6..2f227c95e7 100644 --- a/packages/github-config-ui/package.js +++ b/packages/github-config-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Blaze configuration templates for GitHub OAuth.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/github-oauth/package.js b/packages/github-oauth/package.js index cf55bc427c..51ee22a771 100644 --- a/packages/github-oauth/package.js +++ b/packages/github-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'GitHub OAuth flow', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/google-config-ui/package.js b/packages/google-config-ui/package.js index 9eaa566fee..8e5e15b85f 100644 --- a/packages/google-config-ui/package.js +++ b/packages/google-config-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Blaze configuration templates for Google OAuth.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/google-oauth/package.js b/packages/google-oauth/package.js index ee910c99a6..e64fc4fd69 100644 --- a/packages/google-oauth/package.js +++ b/packages/google-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Google OAuth flow", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Cordova.depends({ diff --git a/packages/hot-code-push/package.js b/packages/hot-code-push/package.js index 51a0c93c5e..812ac24c05 100644 --- a/packages/hot-code-push/package.js +++ b/packages/hot-code-push/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'hot-code-push', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', // Brief, one-line summary of the package. summary: 'Update the client in place when new code is available.', // URL to the Git repository containing the source code for this package. diff --git a/packages/hot-module-replacement/package.js b/packages/hot-module-replacement/package.js index 9b9f948bd5..0a4523b641 100644 --- a/packages/hot-module-replacement/package.js +++ b/packages/hot-module-replacement/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'hot-module-replacement', - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'Update code in development without reloading the page', documentation: 'README.md', debugOnly: true, diff --git a/packages/id-map/package.js b/packages/id-map/package.js index 7f51562483..33b558ef1c 100644 --- a/packages/id-map/package.js +++ b/packages/id-map/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Dictionary data structure allowing non-string keys", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/insecure/package.js b/packages/insecure/package.js index c952ba7300..297b19d17e 100644 --- a/packages/insecure/package.js +++ b/packages/insecure/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "(For prototyping only) Allow all database writes from the client", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); // This package is empty; its presence is detected by mongo-livedata. diff --git a/packages/inter-process-messaging/package.js b/packages/inter-process-messaging/package.js index 18fc0b8af3..4a939aed19 100644 --- a/packages/inter-process-messaging/package.js +++ b/packages/inter-process-messaging/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "inter-process-messaging", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Support for sending messages from the build process to the server process", documentation: "README.md" }); diff --git a/packages/launch-screen/package.js b/packages/launch-screen/package.js index a4d808d6c1..a27e718707 100644 --- a/packages/launch-screen/package.js +++ b/packages/launch-screen/package.js @@ -6,7 +6,7 @@ Package.describe({ // between such packages and the build tool. name: 'launch-screen', summary: 'Default and customizable launch screen on mobile.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Cordova.depends({ diff --git a/packages/localstorage/package.js b/packages/localstorage/package.js index 5a1d6d94f0..0222ef2cc3 100644 --- a/packages/localstorage/package.js +++ b/packages/localstorage/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Simulates local storage on IE 6,7 using userData", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/logging/package.js b/packages/logging/package.js index 0ad573a4aa..024c2d862e 100644 --- a/packages/logging/package.js +++ b/packages/logging/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Logging facility.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/logic-solver/package.js b/packages/logic-solver/package.js index ae910f328f..2ce07edaf6 100644 --- a/packages/logic-solver/package.js +++ b/packages/logic-solver/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "General satisfiability solver for logic problems", - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/meetup-config-ui/package.js b/packages/meetup-config-ui/package.js index 4662aac5ed..3484a82d71 100644 --- a/packages/meetup-config-ui/package.js +++ b/packages/meetup-config-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Blaze configuration templates for the Meetup OAuth flow.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/meetup-oauth/package.js b/packages/meetup-oauth/package.js index f5d304a591..65b2e92bac 100644 --- a/packages/meetup-oauth/package.js +++ b/packages/meetup-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Meetup OAuth flow', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/meteor-base/package.js b/packages/meteor-base/package.js index 0922d0179d..0293693b02 100644 --- a/packages/meteor-base/package.js +++ b/packages/meteor-base/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'meteor-base', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', // Brief, one-line summary of the package. summary: 'Packages that every Meteor app needs', // By default, Meteor will default to using README.md for documentation. diff --git a/packages/meteor-developer-config-ui/package.js b/packages/meteor-developer-config-ui/package.js index 8fc8e3cc7d..b0e8ba0dab 100644 --- a/packages/meteor-developer-config-ui/package.js +++ b/packages/meteor-developer-config-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Blaze configuration templates for the Meteor developer accounts OAuth.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/meteor-developer-oauth/package.js b/packages/meteor-developer-oauth/package.js index f80b6459b3..b1609215c1 100644 --- a/packages/meteor-developer-oauth/package.js +++ b/packages/meteor-developer-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Meteor developer accounts OAuth flow', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index fb930179bf..1446ed5a6d 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'The Meteor command-line tool', - version: '3.0.0-alpha.6', + version: '3.0.0-alpha.9', }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 86fefaeab6..9e8f246f97 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.registerBuildPlugin({ diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 48332105a3..998260813c 100644 --- a/packages/minifier-css/package.js +++ b/packages/minifier-css/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'CSS minifier', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index 4cf206e602..cf389f2916 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "JavaScript minifier", - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/minimongo/package.js b/packages/minimongo/package.js index 178d20004a..10d9225106 100644 --- a/packages/minimongo/package.js +++ b/packages/minimongo/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's client-side datastore: a port of MongoDB to Javascript", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/mobile-experience/package.js b/packages/mobile-experience/package.js index b0b0e608b1..1c1f0d26e3 100644 --- a/packages/mobile-experience/package.js +++ b/packages/mobile-experience/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'mobile-experience', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', summary: 'Packages for a great mobile user experience', documentation: 'README.md' }); diff --git a/packages/mobile-status-bar/package.js b/packages/mobile-status-bar/package.js index 5487c87c2e..89a07b2547 100644 --- a/packages/mobile-status-bar/package.js +++ b/packages/mobile-status-bar/package.js @@ -1,7 +1,7 @@ Package.describe({ name: 'mobile-status-bar', summary: "Good defaults for the mobile status bar", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Cordova.depends({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 9f0bea74aa..777bd8ef41 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'modern-browsers', - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'API for defining the boundary between modern and legacy ' + 'JavaScript clients', diff --git a/packages/modules-runtime-hot/package.js b/packages/modules-runtime-hot/package.js index fdb2972776..c77aa0c8c1 100644 --- a/packages/modules-runtime-hot/package.js +++ b/packages/modules-runtime-hot/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'modules-runtime-hot', - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'Patches modules-runtime to support Hot Module Replacement', git: 'https://github.com/benjamn/install', documentation: 'README.md', diff --git a/packages/modules-runtime/package.js b/packages/modules-runtime/package.js index eb35998a96..1e98f0867e 100644 --- a/packages/modules-runtime/package.js +++ b/packages/modules-runtime/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modules-runtime", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "CommonJS module system", git: "https://github.com/benjamn/install", documentation: "README.md" diff --git a/packages/modules/package.js b/packages/modules/package.js index 4c11e72956..7c683957ac 100644 --- a/packages/modules/package.js +++ b/packages/modules/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modules", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "CommonJS module system", documentation: "README.md" }); diff --git a/packages/mongo-dev-server/package.js b/packages/mongo-dev-server/package.js index 4523ea5f65..0822e59552 100644 --- a/packages/mongo-dev-server/package.js +++ b/packages/mongo-dev-server/package.js @@ -3,7 +3,7 @@ Package.describe({ documentation: 'README.md', name: 'mongo-dev-server', summary: 'Start MongoDB alongside Meteor, in development mode.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/mongo-id/package.js b/packages/mongo-id/package.js index e3cd49b3a3..e5bf5410e4 100644 --- a/packages/mongo-id/package.js +++ b/packages/mongo-id/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'JS simulation of MongoDB ObjectIDs', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/mongo-livedata/package.js b/packages/mongo-livedata/package.js index 71225c8c84..e85d4b1f1b 100644 --- a/packages/mongo-livedata/package.js +++ b/packages/mongo-livedata/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Moved to the 'mongo' package", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 8e2aad1357..ed4452286c 100644 --- a/packages/mongo/package.js +++ b/packages/mongo/package.js @@ -9,7 +9,7 @@ Package.describe({ summary: "Adaptor for using MongoDB and Minimongo over DDP", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 3d0a924eb5..43eecb41ee 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: '5.0.0-alpha300.6', + version: '5.0.0-alpha300.9', documentation: null }); diff --git a/packages/oauth-encryption/package.js b/packages/oauth-encryption/package.js index 35e02551ae..c8b1d45ab5 100644 --- a/packages/oauth-encryption/package.js +++ b/packages/oauth-encryption/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Encrypt account secrets stored in the database", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/oauth/package.js b/packages/oauth/package.js index f00fa4bee4..53ab112f8e 100644 --- a/packages/oauth/package.js +++ b/packages/oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth-based services", - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/oauth1/package.js b/packages/oauth1/package.js index add7db1f18..aae8c05c4b 100644 --- a/packages/oauth1/package.js +++ b/packages/oauth1/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth1-based login services", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/oauth2/package.js b/packages/oauth2/package.js index 391537c52a..189f337915 100644 --- a/packages/oauth2/package.js +++ b/packages/oauth2/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth2-based login services", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/ordered-dict/package.js b/packages/ordered-dict/package.js index e58dc5c993..a27c9c465b 100644 --- a/packages/ordered-dict/package.js +++ b/packages/ordered-dict/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Ordered traversable dictionary with a mutable ordering", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/package-stats-opt-out/package.js b/packages/package-stats-opt-out/package.js index 00ae8e05d4..b6dfffdc6f 100644 --- a/packages/package-stats-opt-out/package.js +++ b/packages/package-stats-opt-out/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Opt out of sending package stats", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/package-version-parser/package.js b/packages/package-version-parser/package.js index d4f586b4d1..b921d96c24 100644 --- a/packages/package-version-parser/package.js +++ b/packages/package-version-parser/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Parses Meteor Smart Package version strings", - version: '4.0.0-alpha300.6', + version: '4.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/promise/package.js b/packages/promise/package.js index 1931d4f5c4..8618e404c1 100644 --- a/packages/promise/package.js +++ b/packages/promise/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "promise", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "ECMAScript 2015 Promise polyfill with Fiber support", git: "https://github.com/meteor/promise", documentation: "README.md" diff --git a/packages/random/package.js b/packages/random/package.js index 2f74c020b1..252545a01d 100644 --- a/packages/random/package.js +++ b/packages/random/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Random number generator and utilities', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/rate-limit/package.js b/packages/rate-limit/package.js index 857b420719..57e32af5f4 100644 --- a/packages/rate-limit/package.js +++ b/packages/rate-limit/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'rate-limit', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', // Brief, one-line summary of the package. summary: 'An algorithm for rate limiting anything', // URL to the Git repository containing the source code for this package. diff --git a/packages/react-fast-refresh/package.js b/packages/react-fast-refresh/package.js index aeba528de7..1d20672f26 100644 --- a/packages/react-fast-refresh/package.js +++ b/packages/react-fast-refresh/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'react-fast-refresh', - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'Automatically update React components with HMR', documentation: 'README.md', devOnly: true, diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 5ae9bd237f..9dcb206ef7 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reactive dictionary", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/reactive-var/package.js b/packages/reactive-var/package.js index b51fc01722..cb7338c251 100644 --- a/packages/reactive-var/package.js +++ b/packages/reactive-var/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reactive variable", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/reload-safetybelt/package.js b/packages/reload-safetybelt/package.js index e061f1ae6d..605c587787 100644 --- a/packages/reload-safetybelt/package.js +++ b/packages/reload-safetybelt/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload safety belt for multi-server deployments", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index 87d3259c34..ccc3f13165 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/retry/package.js b/packages/retry/package.js index 5b98369760..3ce025beb2 100644 --- a/packages/retry/package.js +++ b/packages/retry/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Retry logic with exponential backoff", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/routepolicy/package.js b/packages/routepolicy/package.js index 3fb4daa301..4535b8f6b3 100644 --- a/packages/routepolicy/package.js +++ b/packages/routepolicy/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "route policy declarations", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/server-render/package.js b/packages/server-render/package.js index 66cceb3c3c..f885aee634 100644 --- a/packages/server-render/package.js +++ b/packages/server-render/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "server-render", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Generic support for server-side rendering in Meteor apps", documentation: "README.md" }); diff --git a/packages/service-configuration/package.js b/packages/service-configuration/package.js index 85fae949d6..98a0efa2dd 100644 --- a/packages/service-configuration/package.js +++ b/packages/service-configuration/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Manage the configuration for third-party services', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function(api) { diff --git a/packages/session/package.js b/packages/session/package.js index 5aed482c2f..199f0a27fd 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/sha/package.js b/packages/sha/package.js index 44c2d0a7e3..976131964a 100644 --- a/packages/sha/package.js +++ b/packages/sha/package.js @@ -1,5 +1,5 @@ Package.describe({ - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', summary: 'SHA256 implementation', git: 'https://github.com/meteor/meteor' }); diff --git a/packages/shell-server/package.js b/packages/shell-server/package.js index 66bbfc3dd0..13ce5f91e8 100644 --- a/packages/shell-server/package.js +++ b/packages/shell-server/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "shell-server", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Server-side component of the `meteor shell` command.", documentation: "README.md" }); diff --git a/packages/socket-stream-client/package.js b/packages/socket-stream-client/package.js index 8e70306fbe..c39164ddc6 100644 --- a/packages/socket-stream-client/package.js +++ b/packages/socket-stream-client/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "socket-stream-client", - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: "Provides the ClientStream abstraction used by ddp-client", documentation: "README.md" }); diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 41b8067d87..1386907b9e 100644 --- a/packages/standard-minifier-css/package.js +++ b/packages/standard-minifier-css/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-css', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md', }); diff --git a/packages/standard-minifier-js/package.js b/packages/standard-minifier-js/package.js index 2d381847bf..987d467e6d 100644 --- a/packages/standard-minifier-js/package.js +++ b/packages/standard-minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-js', - version: '3.0.0-alpha300.6', + version: '3.0.0-alpha300.9', summary: 'Standard javascript minifiers used with Meteor apps by default.', documentation: 'README.md', }); diff --git a/packages/standard-minifiers/package.js b/packages/standard-minifiers/package.js index 724d06184f..a1838cb6a2 100644 --- a/packages/standard-minifiers/package.js +++ b/packages/standard-minifiers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifiers', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', summary: 'Standard minifiers used with Meteor apps by default.', documentation: 'README.md' }); diff --git a/packages/static-html/package.js b/packages/static-html/package.js index 22ed969a55..ad79e7e225 100644 --- a/packages/static-html/package.js +++ b/packages/static-html/package.js @@ -1,7 +1,7 @@ Package.describe({ name: 'static-html', summary: "Define static page content in .html files", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', git: 'https://github.com/meteor/meteor.git' }); diff --git a/packages/test-helpers/package.js b/packages/test-helpers/package.js index d017126238..eecc9a4fc8 100644 --- a/packages/test-helpers/package.js +++ b/packages/test-helpers/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Utility functions for tests", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/test-in-browser/package.js b/packages/test-in-browser/package.js index d42588184d..5c24e3aafc 100644 --- a/packages/test-in-browser/package.js +++ b/packages/test-in-browser/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Run tests interactively in the browser", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', documentation: null }); diff --git a/packages/test-in-console/package.js b/packages/test-in-console/package.js index 347b327206..414709a649 100644 --- a/packages/test-in-console/package.js +++ b/packages/test-in-console/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Run tests noninteractively, with results going to the console.', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function(api) { diff --git a/packages/test-server-tests-in-console-once/package.js b/packages/test-server-tests-in-console-once/package.js index 0d214eb4f9..3831552b5d 100644 --- a/packages/test-server-tests-in-console-once/package.js +++ b/packages/test-server-tests-in-console-once/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Run server tests noninteractively, with results going to the console.", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/tinytest-harness/package.js b/packages/tinytest-harness/package.js index 9a7e20fb0a..4a0a0132c8 100644 --- a/packages/tinytest-harness/package.js +++ b/packages/tinytest-harness/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'tinytest-harness', - version: '1.0.0-alpha300.6', + version: '1.0.0-alpha300.9', summary: 'In development, lets your app define Tinytests, run them and see results', documentation: null }); diff --git a/packages/tinytest/package.js b/packages/tinytest/package.js index 7c1891171a..121f0bf106 100644 --- a/packages/tinytest/package.js +++ b/packages/tinytest/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Tiny testing framework", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/tracker/package.js b/packages/tracker/package.js index 15f35b8b25..44aa63fa54 100644 --- a/packages/tracker/package.js +++ b/packages/tracker/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Dependency tracker to allow reactive callbacks", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function (api) { diff --git a/packages/twitter-config-ui/package.js b/packages/twitter-config-ui/package.js index 4f1295ea3a..e7798e5a7f 100644 --- a/packages/twitter-config-ui/package.js +++ b/packages/twitter-config-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Blaze configuration templates for Twitter OAuth.", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function(api) { diff --git a/packages/twitter-oauth/package.js b/packages/twitter-oauth/package.js index c1de019b24..d406e69b4a 100644 --- a/packages/twitter-oauth/package.js +++ b/packages/twitter-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Twitter OAuth flow", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function(api) { diff --git a/packages/typescript/package.js b/packages/typescript/package.js index 759260ed63..7ec3b79949 100644 --- a/packages/typescript/package.js +++ b/packages/typescript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'typescript', - version: '5.0.0-alpha300.6', + version: '5.0.0-alpha300.9', summary: 'Compiler plugin that compiles TypeScript and ECMAScript in .ts and .tsx files', documentation: 'README.md', diff --git a/packages/underscore-tests/package.js b/packages/underscore-tests/package.js index 0d5bfb5fac..2a45b71cc6 100644 --- a/packages/underscore-tests/package.js +++ b/packages/underscore-tests/package.js @@ -2,7 +2,7 @@ Package.describe({ // These tests can't be directly in the underscore packages since // Tinytest depends on underscore summary: "Tests for the underscore package", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onTest(function (api) { diff --git a/packages/underscore/package.js b/packages/underscore/package.js index 303a869f32..7fcdac3ec4 100644 --- a/packages/underscore/package.js +++ b/packages/underscore/package.js @@ -1,7 +1,7 @@ Package.describe({ summary: "Collection of small helpers: _.map, _.each, ...", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/url/package.js b/packages/url/package.js index fd9f5b83dc..126995e52a 100644 --- a/packages/url/package.js +++ b/packages/url/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "url", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', summary: "Isomorphic modern/legacy/Node polyfill for WHATWG URL/URLSearchParams", documentation: "README.md" }); diff --git a/packages/webapp-hashing/package.js b/packages/webapp-hashing/package.js index a31fac06bc..28c743c55a 100644 --- a/packages/webapp-hashing/package.js +++ b/packages/webapp-hashing/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Used internally by WebApp. Knows how to hash programs from manifests.", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(function(api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index b96def392f..fbda2e3b5a 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Serves a Meteor app over HTTP', - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Npm.depends({ diff --git a/packages/weibo-config-ui/package.js b/packages/weibo-config-ui/package.js index 86758283e7..e15c39d65b 100644 --- a/packages/weibo-config-ui/package.js +++ b/packages/weibo-config-ui/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Blaze configuration templates for Weibo OAuth.", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/packages/weibo-oauth/package.js b/packages/weibo-oauth/package.js index 0e32e7025a..3cbbddff4a 100644 --- a/packages/weibo-oauth/package.js +++ b/packages/weibo-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Weibo OAuth flow", - version: '2.0.0-alpha300.6', + version: '2.0.0-alpha300.9', }); Package.onUse(api => { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 5347a00ffb..e0fc01ca89 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "3.0-alpha.6", + "version": "3.0-alpha.9", "recommended": false, "official": false, "description": "Meteor experimental release" diff --git a/tools/cli/commands-cordova.js b/tools/cli/commands-cordova.js index 52cc2f09f6..bdff7c274c 100644 --- a/tools/cli/commands-cordova.js +++ b/tools/cli/commands-cordova.js @@ -16,7 +16,6 @@ async function createProjectContext(appDir) { const projectContext = new ProjectContext({ projectDir: appDir }); - await projectContext.init(); await main.captureAndExit('=> Errors while initializing project:', async () => { // We're just reading metadata here; we don't need to resolve constraints. await projectContext.readProjectMetadata(); @@ -148,8 +147,8 @@ main.registerCommand({ name: 'list-platforms', requiresApp: true, catalogRefresh: new catalog.Refresh.Never() -}, function (options) { - const projectContext = createProjectContext(options.appDir); +}, async function (options) { + const projectContext = await createProjectContext(options.appDir); const installedPlatforms = projectContext.platformList.getPlatforms(); diff --git a/tools/cli/commands-packages-query.js b/tools/cli/commands-packages-query.js index 14370d6cbb..81f75f71c0 100644 --- a/tools/cli/commands-packages-query.js +++ b/tools/cli/commands-packages-query.js @@ -155,7 +155,6 @@ var getTempContext = async function (options) { explicitlyAddedLocalPackageDirs: currentPackageDir }); } - await projectContext.init(); // It is possible that we can't process package.js files in our local packages // and have to exit early. This is unfortunate, but we can't search local diff --git a/tools/cli/commands-packages.js b/tools/cli/commands-packages.js index 006daf9c0d..9027e7c0ba 100644 --- a/tools/cli/commands-packages.js +++ b/tools/cli/commands-packages.js @@ -104,7 +104,6 @@ main.registerCommand({ neverWritePackageMap: true, allowIncompatibleUpdate: options['allow-incompatible-update'] }); - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", async function () { await projectContext.initializeCatalog(); }); @@ -150,7 +149,6 @@ 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(); @@ -303,7 +301,6 @@ main.registerCommand({ lintPackageWithSourceRoot: options['no-lint'] ? null : options.packageDir, }); } - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", async function () { // Just get up to initializing the catalog. We're going to mutate the @@ -444,7 +441,7 @@ main.registerCommand({ // We have initialized everything, so perform the publish operation. var binary = isopack.platformSpecific(); await main.captureAndExit( - "=> Errors while publishing:", + "=> Errors while publishing:" + packageSource.name, "publishing the package", async function () { await packageClient.publishPackage({ @@ -644,7 +641,6 @@ 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 () { @@ -863,7 +859,6 @@ 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(); @@ -1178,7 +1173,6 @@ main.registerCommand({ projectDir: options.appDir, allowIncompatibleUpdate: options['allow-incompatible-update'] }); - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", async function () { return await projectContext.prepareProjectForBuild(); @@ -1627,7 +1621,6 @@ 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(); }); @@ -1837,7 +1830,6 @@ main.registerCommand({ alwaysWritePackageMap: true, allowIncompatibleUpdate: options["allow-incompatible-update"] }); - await projectContext.init() await main.captureAndExit("=> Errors while initializing project:", async function () { await projectContext.readProjectMetadata(); }); @@ -2053,7 +2045,6 @@ 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(); }); @@ -2122,7 +2113,6 @@ 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(); @@ -2162,8 +2152,6 @@ main.registerCommand({ allowIncompatibleUpdate: options["allow-incompatible-update"] }); - await projectContext.init(); - 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. @@ -2371,7 +2359,6 @@ main.registerCommand({ projectDir: options.appDir, allowIncompatibleUpdate: options["allow-incompatible-update"] }); - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", async function () { // We're just reading metadata here --- we're not going to resolve diff --git a/tools/cli/commands.js b/tools/cli/commands.js index d0cd3c1f39..9bdaaf6994 100644 --- a/tools/cli/commands.js +++ b/tools/cli/commands.js @@ -362,7 +362,6 @@ async function doRunCommand(options) { lintAppAndLocalPackages: !options['no-lint'], includePackages: includePackages, }); - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", function () { // We're just reading metadata here --- we'll wait to do the full build @@ -500,7 +499,6 @@ main.registerCommand({ var projectContext = new projectContextModule.ProjectContext({ projectDir: options.appDir }); - await projectContext.init(); // Convert to OS path here because shell/server.js doesn't know how to // convert paths, since it exists in the app and in the tool. @@ -847,8 +845,6 @@ main.registerCommand({ allowIncompatibleUpdate: true }); - await projectContext.init(); - await main.captureAndExit("=> Errors while creating your project", async function () { await projectContext.readProjectMetadata(); if (buildmessage.jobHasMessages()) { @@ -1049,7 +1045,6 @@ var buildCommand = async function (options) { serverArchitectures: _.uniq([bundleArch, archinfo.host()]), allowIncompatibleUpdate: options['allow-incompatible-update'] }); - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", function () { // TODO Fix the nested Profile.run warning here, without interfering @@ -1327,7 +1322,6 @@ 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. @@ -1353,7 +1347,6 @@ main.registerCommand({ allowIncompatibleUpdate: options['allow-incompatible-update'], lintAppAndLocalPackages: true }); - await projectContext.init() } @@ -1623,7 +1616,6 @@ async function deployCommand(options, { rawOptions }) { serverArchitectures: _.uniq([buildArch, archinfo.host()]), allowIncompatibleUpdate: options['allow-incompatible-update'] }); - await projectContext.init() await main.captureAndExit("=> Errors while initializing project:", function () { // TODO Fix nested Profile.run warning here, too. return projectContext.prepareProjectForBuild(); @@ -1948,7 +1940,6 @@ async function doTestCommand(options) { // repeated test-packages calls with some sort of shared or semi-shared // isopack cache that's specific to test-packages? See #3012. projectContext = new projectContextModule.ProjectContext(projectContextOptions); - await projectContext.init(); await main.captureAndExit("=> Errors while initializing project:", function () { // We're just reading metadata here --- we'll wait to do the full build @@ -2041,7 +2032,6 @@ async function doTestCommand(options) { await copyDirIntoTestRunnerApp(true, '.meteor', 'local', 'shell'); projectContext = new projectContextModule.ProjectContext(projectContextOptions); - await projectContext.init(); await main.captureAndExit("=> Errors while setting up tests:", async function () { // Read metadata and initialize catalog. @@ -2826,7 +2816,7 @@ main.registerCommand({ throw new main.ExitWithCode(2); } - files.cp_r(assetsPath(), files.pathResolve(scaffoldPath), { + await files.cp_r(assetsPath(), files.pathResolve(scaffoldPath), { transformFilename: function (f) { if (options.replaceFn) return userTransformFilenameFn(f); return transformName(f); diff --git a/tools/cordova/builder.js b/tools/cordova/builder.js index 8f42539aa4..7c6c9fb75e 100644 --- a/tools/cordova/builder.js +++ b/tools/cordova/builder.js @@ -245,11 +245,11 @@ export class CordovaBuilder { if (files.exists(controlFilePath)) { Console.debug('Processing mobile-config.js'); - await buildmessage.enterJob({ title: `processing mobile-config.js` }, () => { + await buildmessage.enterJob({ title: `processing mobile-config.js` }, async () => { const code = files.readFile(controlFilePath, 'utf8'); try { - files.runJavaScript(code, { + await files.runJavaScript(code, { filename: 'mobile-config.js', symbols: { App: createAppConfiguration(this) } }); @@ -260,7 +260,7 @@ export class CordovaBuilder { } } - writeConfigXmlAndCopyResources(shouldCopyResources = true) { + async writeConfigXmlAndCopyResources(shouldCopyResources = true) { let config = XmlBuilder.create({ version: '1.0' }).ele('widget'); // Set the root attributes @@ -341,7 +341,7 @@ export class CordovaBuilder { } if (shouldCopyResources) { // Prepare the resources folder - files.rm_recursive(this.resourcesPath); + await files.rm_recursive(this.resourcesPath); files.mkdir_p(this.resourcesPath); Console.debug('Copying resources for mobile apps'); @@ -614,14 +614,14 @@ export class CordovaBuilder { return boilerplate.toHTMLAsync(); } - copyBuildOverride() { + async copyBuildOverride() { const buildOverridePath = files.pathJoin(this.projectContext.projectDir, 'cordova-build-override'); if (files.exists(buildOverridePath) && files.stat(buildOverridePath).isDirectory()) { Console.debug('Copying over the cordova-build-override directory'); - files.cp_r(buildOverridePath, this.projectRoot); + await files.cp_r(buildOverridePath, this.projectRoot); } } } diff --git a/tools/cordova/index.js b/tools/cordova/index.js index eb5e8d0f35..f12c481200 100644 --- a/tools/cordova/index.js +++ b/tools/cordova/index.js @@ -41,8 +41,8 @@ export function ensureDevBundleDependencies() { title: 'Installing Cordova in Meteor tool', }, async () => { - await require("../cli/dev-bundle-helpers.js") - .ensureDependencies(CORDOVA_DEV_BUNDLE_VERSIONS); + await (require("../cli/dev-bundle-helpers.js") + .ensureDependencies(CORDOVA_DEV_BUNDLE_VERSIONS)); const cordovaNodeModulesDir = pathJoin( getDevBundle(), diff --git a/tools/cordova/project.js b/tools/cordova/project.js index 531bd39f69..3855d9bd67 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -158,7 +158,7 @@ export class CordovaProject { outdated platforms`); // Remove Cordova project directory to start afresh // and avoid a broken project - files.rm_recursive(this.projectRoot); + await files.rm_recursive(this.projectRoot); } } @@ -195,7 +195,7 @@ outdated platforms`); } // Don't copy resources (they will be copied as part of the prepare) - builder.writeConfigXmlAndCopyResources(false); + await builder.writeConfigXmlAndCopyResources(false); // Create the Cordova project root directory files.mkdir_p(files.pathDirname(this.projectRoot)); @@ -271,7 +271,7 @@ outdated platforms`); return; } - builder.writeConfigXmlAndCopyResources(); + await builder.writeConfigXmlAndCopyResources(); await builder.copyWWW(bundlePath); await this.ensurePluginsAreSynchronized(pluginVersions, @@ -291,7 +291,7 @@ outdated platforms`); 'LD_RUNPATH_SEARCH_PATHS = @executable_path/Frameworks;'); } - builder.copyBuildOverride(); + await builder.copyBuildOverride(); } async prepareForPlatform(platform, options) { @@ -348,11 +348,7 @@ ${displayNameForPlatform(platform)}`, async () => { await this.runCommands( `running Cordova app for platform \ ${displayNameForPlatform(platform)} with options ${options}`, - async () => { - await cordova_lib.run(commandOptions); - } - ); - + () => cordova_lib.run(commandOptions)); } // Platforms diff --git a/tools/cordova/run-targets.js b/tools/cordova/run-targets.js index 420eef3967..2541680280 100644 --- a/tools/cordova/run-targets.js +++ b/tools/cordova/run-targets.js @@ -32,7 +32,7 @@ export class iOSRunTarget extends CordovaRunTarget { await cordovaProject.run(this.platform, this.isDevice, undefined); // Bring iOS Simulator to front (it is called Simulator in Xcode 7) - execFileAsync('osascript', ['-e', + await execFileAsync('osascript', ['-e', `tell application "System Events" set possibleSimulatorNames to {"iOS Simulator", "Simulator"} repeat with possibleSimulatorName in possibleSimulatorNames @@ -102,7 +102,7 @@ export class AndroidRunTarget extends CordovaRunTarget { let target = this.isDevice ? "-d" : "-e"; // Clear logs - execFileAsync('adb', [target, 'logcat', '-c']); + await execFileAsync('adb', [target, 'logcat', '-c']); await cordovaProject.run(this.platform, this.isDevice); diff --git a/tools/cordova/runner.js b/tools/cordova/runner.js index 5ac5e8bfc9..e137b6010f 100644 --- a/tools/cordova/runner.js +++ b/tools/cordova/runner.js @@ -73,7 +73,6 @@ export class CordovaRunner { buildmessage.assertInCapture(); await buildmessage.enterJob({ title: "preparing Cordova project" }, async () => { - // TODO -> Cordova Setup await this.cordovaProject.prepareFromAppBundle(bundlePath, pluginVersions, options); diff --git a/tools/packaging/catalog/catalog-local.js b/tools/packaging/catalog/catalog-local.js index 61bd974aa1..273aa59d99 100644 --- a/tools/packaging/catalog/catalog-local.js +++ b/tools/packaging/catalog/catalog-local.js @@ -70,6 +70,10 @@ const KNOWN_ISOBUILD_FEATURE_PACKAGES = { // allowed to return a Promise instead of having to await async // compilation using fibers and/or futures. 'isobuild:async-plugins': ['1.6.1'], + + // This package requires functionality introduced in meteor-tools@3.0 + // to enable using top level await + 'isobuild:top-level-await': ['3.0.0'], } // LocalCatalog represents packages located in the application's diff --git a/tools/project-context.js b/tools/project-context.js index 92e797da8a..1fb15c48f8 100644 --- a/tools/project-context.js +++ b/tools/project-context.js @@ -77,6 +77,10 @@ const KNOWN_ISOBUILD_FEATURE_PACKAGES = { // allowed to return a Promise instead of having to await async // compilation using fibers and/or futures. 'isobuild:async-plugins': ['1.6.1'], + + // This package requires functionality introduced in meteor-tools@3.0 + // to enable using top level await + 'isobuild:top-level-await': ['3.0.0'], } import { @@ -120,6 +124,7 @@ function ProjectContext(options) { throw Error("missing projectDir!"); self.originalOptions = options; + self.reset(); } exports.ProjectContext = ProjectContext; @@ -135,11 +140,7 @@ var STAGE = { }; Object.assign(ProjectContext.prototype, { - init: function () { - const self = this; - return self.reset(); - }, - reset: async function (moreOptions, resetOptions) { + reset: function (moreOptions, resetOptions) { var self = this; // Allow overriding some options until the next call to reset; var options = Object.assign({}, self.originalOptions, moreOptions); diff --git a/tools/runners/run-all.js b/tools/runners/run-all.js index 0e9b37b987..4dfc6bfce2 100644 --- a/tools/runners/run-all.js +++ b/tools/runners/run-all.js @@ -170,10 +170,6 @@ class Runner { runLog.log("Started proxy.", { arrow: true }); } - /** - * - * @type {(function(): *)} - */ var unblockAppRunner = self.appRunner.makeBeforeStartPromise(); function startMongo(tries = 3) { @@ -185,7 +181,7 @@ class Runner { const left = tries + (tries === 1 ? " try" : " tries"); Console.log(`Error starting Mongo (${left} left): ${error.message}`); if (tries > 0) { - await self.mongoRunner.stop(); + self.mongoRunner.stop(); setTimeout(() => startMongo(tries), 1000); } else { await self.mongoRunner._fail(); @@ -208,9 +204,7 @@ class Runner { } if (! self.stopped) { - await buildmessage.enterJob({ title: "starting your app" }, async function () { - await self.appRunner.start(); - }); + await buildmessage.enterJob({ title: "starting your app" }, () => self.appRunner.start()); if (! self.quiet && ! self.stopped) { runLog.log("Started your app.", { arrow: true }); } @@ -402,7 +396,7 @@ exports.run = async function (options) { var runner = new Runner(runOptions); await runner.init(); // don't wait this on to finish - runner.start(); + setTimeout(() => runner.start(), 0); var result = await promise; await runner.stop(); diff --git a/tools/runners/run-app.js b/tools/runners/run-app.js index 6caf810d0b..d00ab78308 100644 --- a/tools/runners/run-app.js +++ b/tools/runners/run-app.js @@ -104,7 +104,7 @@ Object.assign(AppProcess.prototype, { // Watch for exit and for stdio to be fully closed (so that we don't miss // log lines). self.proc.on('close', async function (code, signal) { - self._maybeCallOnExit(code, signal); + await self._maybeCallOnExit(code, signal); }); self.proc.on('error', async function (err) { @@ -113,7 +113,7 @@ Object.assign(AppProcess.prototype, { // node docs say that it might make both an 'error' and a // 'close' callback, so we use a guard to make sure we only call // onExit once. - self._maybeCallOnExit(); + await self._maybeCallOnExit(); }); // This happens sometimes when we write a keepalive after the app @@ -123,13 +123,13 @@ Object.assign(AppProcess.prototype, { self.proc.stdin.on('error', function () {}); }, - _maybeCallOnExit: function (code, signal) { + _maybeCallOnExit: async function (code, signal) { var self = this; if (self.madeExitCallback) { return; } self.madeExitCallback = true; - self.onExit && self.onExit(code, signal); + self.onExit && await self.onExit(code, signal); }, // Idempotent. Once stop() returns it is guaranteed that you will @@ -404,7 +404,9 @@ Object.assign(AppRunner.prototype, { self.startPromise = self._makePromise("start"); self.isRunning = true; - self._runApp().catch((e) => self._resolvePromise("start", e)); + global.asyncLocalStorage.run({}, () => + self._runApp().catch((e) => self._resolvePromise("start", e)) + ); await self.startPromise; self.startPromise = null; }, @@ -416,12 +418,6 @@ Object.assign(AppRunner.prototype, { return this._promiseResolvers[name]; }, - _makeIterable : function (name) { - var self = this; - const ee = self._findCachedEE(name); - return on(ee, name); - }, - /** * @param name * @return {Promise<[any]>} @@ -527,7 +523,7 @@ Object.assign(AppRunner.prototype, { // to how the WatchSets are laid out. Might be possible to avoid // re-building the local catalog at all if packages didn't change // at all, though.) - await self.projectContext.reset({}, { + self.projectContext.reset({}, { // Don't forget all Isopack objects; just make sure to check that they // are up to date. softRefreshIsopacks: true, @@ -539,9 +535,7 @@ Object.assign(AppRunner.prototype, { // shown from the previous solution. preservePackageMap: true }); - var messages = await buildmessage.capture(async function () { - return await self.projectContext.readProjectMetadata(); - }); + var messages = await buildmessage.capture(() => self.projectContext.readProjectMetadata()); if (messages.hasMessages()) { return { runResult: { @@ -565,9 +559,7 @@ Object.assign(AppRunner.prototype, { }; } - messages = await buildmessage.capture(async function () { - return await self.projectContext.prepareProjectForBuild(); - }); + messages = await buildmessage.capture(() => self.projectContext.prepareProjectForBuild()); if (messages.hasMessages()) { return { runResult: { @@ -591,8 +583,8 @@ Object.assign(AppRunner.prototype, { }); } - var bundleResult = await Profile.run((firstRun?"B":"Reb")+"uild App", async function() { - return await bundler.bundle({ + var bundleResult = await Profile.run((firstRun?"B":"Reb")+"uild App", async () => + bundler.bundle({ projectContext: self.projectContext, outputPath: bundlePath, includeNodeModules: "symlink", @@ -607,8 +599,7 @@ Object.assign(AppRunner.prototype, { // None of the targets are used during full rebuilds // so we can safely build in place on Windows forceInPlaceBuild: !cachedServerWatchSet - }); - }); + })); // Keep the server watch set from the initial bundle, because subsequent // bundles will not contain a server target. @@ -685,7 +676,6 @@ Object.assign(AppRunner.prototype, { if (!cordovaRunner.started) { const { settingsFile, mobileServerUrl } = self; const messages = await buildmessage.capture(async () => { - // TODO -> Check cordova await cordovaRunner.prepareProject(bundlePath, pluginVersions, { settingsFile, mobileServerUrl }); }); @@ -728,7 +718,7 @@ Object.assign(AppRunner.prototype, { var listenPromise = self._makePromise("listen"); // Run the program - options.beforeRun && options.beforeRun(); + options.beforeRun && await options.beforeRun(); var appProcess = new AppProcess({ projectContext: self.projectContext, bundlePath: bundlePath, @@ -970,7 +960,7 @@ Object.assign(AppRunner.prototype, { }); firstRun = false; - var wantExit = self.onRunEnd ? !self.onRunEnd(runResult) : false; + var wantExit = self.onRunEnd ? !(await self.onRunEnd(runResult)) : false; if (wantExit || self.exitPromise || runResult.outcome === "stopped") { break; } diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index fb06df047c..d284dfcd7a 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -543,7 +543,7 @@ var launchMongo = async function(options) { require('../tool-env/cleanup.js').onExit(stop); subHandles.push({ stop }); - var procExitHandler = await fiberHelpers.bindEnvironment(async function(code, signal) { + var procExitHandler = fiberHelpers.bindEnvironment(async function(code, signal) { // Defang subHandle.stop(). proc = null; @@ -973,7 +973,7 @@ Object.assign(MRp, { if (self.errorCount < 3) { // Wait a second, then restart. - self.restartTimer = await setTimeout( + self.restartTimer = setTimeout( fiberHelpers.bindEnvironment(async function() { self.restartTimer = null; await self._startOrRestart(); @@ -1061,10 +1061,10 @@ Object.assign(MRp, { } }, - _fail: function() { + _fail: async function() { var self = this; self.stop(); - self.onFailure && self.onFailure(); + self.onFailure && await self.onFailure(); self._allowStartupToReturn(); }, diff --git a/tools/runners/run-proxy.js b/tools/runners/run-proxy.js index 62b8c53849..f237f68fde 100644 --- a/tools/runners/run-proxy.js +++ b/tools/runners/run-proxy.js @@ -71,7 +71,7 @@ Object.assign(Proxy.prototype, { allowStart = resolve; }); - self.server.on('error', function (err) { + self.server.on('error', async function (err) { if (err.code === 'EADDRINUSE') { var port = self.listenPort; runLog.log( @@ -92,7 +92,7 @@ Object.assign(Proxy.prototype, { } else { runLog.log('' + err); } - self.onFailure(); + await self.onFailure(); allowStart(); }); diff --git a/tools/tests/apps/app-config/.meteor/packages b/tools/tests/apps/app-config/.meteor/packages index dcab3914a8..72736f6f66 100644 --- a/tools/tests/apps/app-config/.meteor/packages +++ b/tools/tests/apps/app-config/.meteor/packages @@ -12,4 +12,4 @@ es5-shim # ECMAScript 5 compatibility for older browsers ecmascript # Enable ECMAScript2015+ syntax in app code shell-server # Server-side component of the `meteor shell` command less # Support .less files for defining CSS styles -grubba:mocha +grubba:mocha@3.0.2-alpha300.9 diff --git a/tools/tests/apps/compiler-plugin-static-html-error/.meteor/packages b/tools/tests/apps/compiler-plugin-static-html-error/.meteor/packages index 52841ee183..fa4e489a72 100644 --- a/tools/tests/apps/compiler-plugin-static-html-error/.meteor/packages +++ b/tools/tests/apps/compiler-plugin-static-html-error/.meteor/packages @@ -2,7 +2,7 @@ # # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -meteor-base@1.4.0 +meteor-base@2.0.0-alpha300.9 static-html standard-minifier-css standard-minifier-js diff --git a/tools/tests/apps/compiler-plugin-static-html/.meteor/packages b/tools/tests/apps/compiler-plugin-static-html/.meteor/packages index 52841ee183..fa4e489a72 100644 --- a/tools/tests/apps/compiler-plugin-static-html/.meteor/packages +++ b/tools/tests/apps/compiler-plugin-static-html/.meteor/packages @@ -2,7 +2,7 @@ # # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -meteor-base@1.4.0 +meteor-base@2.0.0-alpha300.9 static-html standard-minifier-css standard-minifier-js diff --git a/tools/tests/apps/ddp-heartbeat/server/heartbeat_test.js b/tools/tests/apps/ddp-heartbeat/server/heartbeat_test.js index dd3b5c0a51..b298d83413 100644 --- a/tools/tests/apps/ddp-heartbeat/server/heartbeat_test.js +++ b/tools/tests/apps/ddp-heartbeat/server/heartbeat_test.js @@ -65,7 +65,11 @@ const testServerTimeout = async () => { (async function () { Meteor._printReceivedDDP = true; Meteor._printSentDDP = true; - await testClientTimeout(); - await testServerTimeout(); + await testClientTimeout().catch((e) => + console.error("Error in testClientTimeout", e) + ); + await testServerTimeout().catch((e) => + console.error("Error in testServerTimeout", e) + ); process.exit(0); })(); diff --git a/tools/tests/apps/dynamic-import/.meteor/packages b/tools/tests/apps/dynamic-import/.meteor/packages index 15a684792c..256afe1685 100644 --- a/tools/tests/apps/dynamic-import/.meteor/packages +++ b/tools/tests/apps/dynamic-import/.meteor/packages @@ -4,25 +4,26 @@ # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -meteor-base@1.5.1 # Packages every Meteor app needs to have -mobile-experience@1.1.0 # Packages for a great mobile UX -mongo@1.16.5 # The database Meteor supports right now -blaze-html-templates@2.0.0! # Compile .html files into Meteor Blaze views -reactive-var@1.0.12 # Reactive variable for tracker -tracker@1.3.1 # Meteor's client-side reactive programming library +meteor-base@2.0.0-alpha300.9 # Packages every Meteor app needs to have +mobile-experience@2.0.0-alpha300.9 # Packages for a great mobile UX +mongo@2.0.0-alpha300.9 # The database Meteor supports right now +blaze-html-templates@3.0.0-alpha300.6 # Compile .html files into Meteor Blaze views +reactive-var@2.0.0-alpha300.9 # Reactive variable for tracker +tracker@2.0.0-alpha300.9 # Meteor's client-side reactive programming library -standard-minifier-css@1.9.0 # CSS minifier run for production mode -standard-minifier-js@2.8.1 # JS minifier run for production mode -es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers. -ecmascript@0.16.6 # Enable ECMAScript2015+ syntax in app code -shell-server@0.5.0 # Server-side component of the `meteor shell` command +standard-minifier-css@2.0.0-alpha300.9 # CSS minifier run for production mode +standard-minifier-js@3.0.0-alpha300.9 # JS minifier run for production mode +es5-shim@5.0.0-alpha300.9 # ECMAScript 5 compatibility for older browsers. +ecmascript@1.0.0-alpha300.9 # Enable ECMAScript2015+ syntax in app code +shell-server@1.0.0-alpha300.9 # Server-side component of the `meteor shell` command -autopublish@1.0.7 # Publish all data to the clients (for prototyping) -insecure@1.0.7 # Allow all DB writes from clients (for prototyping) -dynamic-import@0.7.2 +autopublish@2.0.0-alpha300.9 # Publish all data to the clients (for prototyping) +insecure@2.0.0-alpha300.9 # Allow all DB writes from clients (for prototyping) +dynamic-import@1.0.0-alpha300.9 lazy-test-package helper-package user:colon-name -underscore@1.0.12 -fetch@0.1.3 +underscore@2.0.0-alpha300.9 +fetch@1.0.0-alpha300.9 jquery +grubba:mocha@3.0.2-alpha300.9 diff --git a/tools/tests/apps/ecmascript-regression/.meteor/packages b/tools/tests/apps/ecmascript-regression/.meteor/packages index 59cfdb5807..7161213cd8 100644 --- a/tools/tests/apps/ecmascript-regression/.meteor/packages +++ b/tools/tests/apps/ecmascript-regression/.meteor/packages @@ -4,20 +4,21 @@ # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -meteor-base@1.5.1 # Packages every Meteor app needs to have -mobile-experience@1.1.0 # Packages for a great mobile UX -mongo@1.13.0 # The database Meteor supports right now -reactive-var@1.0.12 # Reactive variable for tracker +meteor-base@2.0.0-alpha300.9 # Packages every Meteor app needs to have +mobile-experience@2.0.0-alpha300.9 # Packages for a great mobile UX +mongo@2.0.0-alpha300.9 # The database Meteor supports right now +reactive-var@2.0.0-alpha300.9 # Reactive variable for tracker -standard-minifier-css@1.7.4 # CSS minifier run for production mode -standard-minifier-js@2.7.0 # JS minifier run for production mode -es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers -ecmascript@0.15.3 # Enable ECMAScript2015+ syntax in app code -typescript@4.3.5 # Enable TypeScript syntax in .ts and .tsx modules -shell-server@0.5.0 # Server-side component of the `meteor shell` command -hot-module-replacement@0.3.0 # Update client in development without reloading the page +standard-minifier-css@2.0.0-alpha300.9 # CSS minifier run for production mode +standard-minifier-js@3.0.0-alpha300.9 # JS minifier run for production mode +es5-shim@5.0.0-alpha300.9 # ECMAScript 5 compatibility for older browsers +ecmascript@1.0.0-alpha300.9 # Enable ECMAScript2015+ syntax in app code +typescript@5.0.0-alpha300.9 # Enable TypeScript syntax in .ts and .tsx modules +shell-server@1.0.0-alpha300.9 # Server-side component of the `meteor shell` command +hot-module-replacement@1.0.0-alpha300.9 # Update client in development without reloading the page -autopublish@1.0.7 # Publish all data to the clients (for prototyping) -insecure@1.0.7 # Allow all DB writes from clients (for prototyping) -static-html@1.3.2 # Define static page content in .html files -react-meteor-data # React higher-order component for reactively tracking Meteor data +autopublish@2.0.0-alpha300.9 # Publish all data to the clients (for prototyping) +insecure@2.0.0-alpha300.9 # Allow all DB writes from clients (for prototyping) +static-html@2.0.0-alpha300.9 # Define static page content in .html files +react-meteor-data@3.0.0-alpha300.6 # React higher-order component for reactively tracking Meteor data +grubba:mocha@3.0.2-alpha300.9 \ No newline at end of file diff --git a/tools/tests/apps/shell/.meteor/packages b/tools/tests/apps/shell/.meteor/packages index 62532884c8..33a43838c5 100644 --- a/tools/tests/apps/shell/.meteor/packages +++ b/tools/tests/apps/shell/.meteor/packages @@ -7,7 +7,7 @@ meteor-base # Packages every Meteor app needs to have mobile-experience # Packages for a great mobile UX mongo # The database Meteor supports right now -blaze-html-templates@2.0.0! # Compile .html files into Meteor Blaze views +blaze-html-templates@3.0.0-alpha300.6 # Compile .html files into Meteor Blaze views reactive-var # Reactive variable for tracker jquery # Helpful client-side library tracker # Meteor's client-side reactive programming library diff --git a/tools/tests/apps/shell/.meteor/versions b/tools/tests/apps/shell/.meteor/versions index 80b62f9734..00a78ead10 100644 --- a/tools/tests/apps/shell/.meteor/versions +++ b/tools/tests/apps/shell/.meteor/versions @@ -6,7 +6,7 @@ babel-runtime@0.1.10 base64@1.0.9 binary-heap@1.0.9 blaze@2.1.8 -blaze-html-templates@1.0.4 +blaze-html-templates@3.0.0-alpha300.6 blaze-tools@1.0.9 boilerplate-generator@1.0.9 caching-compiler@1.1.6 diff --git a/tools/tests/apps/standard-app/.meteor/packages b/tools/tests/apps/standard-app/.meteor/packages index 832376896d..6eb2f585fa 100644 --- a/tools/tests/apps/standard-app/.meteor/packages +++ b/tools/tests/apps/standard-app/.meteor/packages @@ -3,8 +3,8 @@ # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -meteor-base@1.4.0 -mongo@1.6.0 +meteor-base@2.0.0-alpha300.9 +mongo@2.0.0-alpha300.9 standard-minifier-css standard-minifier-js shell-server diff --git a/tools/tests/apps/standard-app/.meteor/versions b/tools/tests/apps/standard-app/.meteor/versions index 521ac34984..ab358e39a5 100644 --- a/tools/tests/apps/standard-app/.meteor/versions +++ b/tools/tests/apps/standard-app/.meteor/versions @@ -27,14 +27,14 @@ inter-process-messaging@0.1.0 livedata@1.0.18 logging@1.1.20 meteor@1.9.2 -meteor-base@1.4.0 +meteor-base@2.0.0-alpha300.9 minifier-css@1.4.1 minifier-js@2.4.0 minimongo@1.4.5 modern-browsers@0.1.3 modules@0.13.0 modules-runtime@0.10.3 -mongo@1.6.0 +mongo@2.0.0-alpha300.9 mongo-decimal@0.1.0 mongo-dev-server@1.1.0 mongo-id@1.0.7 diff --git a/tools/tests/command-line.js b/tools/tests/command-line.js index 86cf33a5fa..815d63db51 100644 --- a/tools/tests/command-line.js +++ b/tools/tests/command-line.js @@ -378,18 +378,19 @@ selftest.define("argument parsing", async function () { await run.stop(); }); - await s.createApp("app-with-extra-packages", "extra-packages-option", { - dontPrepareApp: true - }); - await s.cd("app-with-extra-packages", async function () { - run = s.run("test", - "--extra-packages", "tmeasday:acceptance-test-driver, extra-package-1, extra-package-2@=0.0.2", - "--driver-package", "tmeasday:acceptance-test-driver"); - run.waitSecs(60); - await run.match("extra-package-1: foobar"); - await run.match("extra-package-2: barfoo"); - await run.stop(); - }); + // FIXME: Fibers - Need to make a new release of tmeasday:acceptance-test-driver + // await s.createApp("app-with-extra-packages", "extra-packages-option", { + // dontPrepareApp: true + // }); + // await s.cd("app-with-extra-packages", async function () { + // run = s.run("test", + // "--extra-packages", "tmeasday:acceptance-test-driver, extra-package-1, extra-package-2@=0.0.2", + // "--driver-package", "tmeasday:acceptance-test-driver"); + // run.waitSecs(60); + // await run.match("extra-package-1: foobar"); + // await run.match("extra-package-2: barfoo"); + // await run.stop(); + // }); await s.createApp("app-with-extra-packages", "extra-packages-option", { dontPrepareApp: true diff --git a/tools/tests/dynamic-import.js b/tools/tests/dynamic-import.js index 301ddb9db3..4250a01bec 100644 --- a/tools/tests/dynamic-import.js +++ b/tools/tests/dynamic-import.js @@ -8,7 +8,7 @@ selftest.define("dynamic import(...) in development", async function () { await s.init(); await s.createApp("dynamic-import-test-app-devel", "dynamic-import"); - s.cd("dynamic-import-test-app-devel", run.bind(s, false)); + await s.cd("dynamic-import-test-app-devel", run.bind(s, false)); }); selftest.define("dynamic import(...) in production", async function () { @@ -16,7 +16,7 @@ selftest.define("dynamic import(...) in production", async function () { await s.init(); await s.createApp("dynamic-import-test-app-prod", "dynamic-import"); - s.cd("dynamic-import-test-app-prod", run.bind(s, true)); + await s.cd("dynamic-import-test-app-prod", run.bind(s, true)); }); selftest.define("dynamic import(...) with cache", async function () { diff --git a/tools/tests/old/test-bundler-assets.js b/tools/tests/old/test-bundler-assets.js index 059faf9f68..c0c1278434 100644 --- a/tools/tests/old/test-bundler-assets.js +++ b/tools/tests/old/test-bundler-assets.js @@ -33,8 +33,6 @@ var makeProjectContext = async function (appName) { projectDir: projectDir }); - await projectContext.init(); - await doOrThrow(async function () { await projectContext.prepareProjectForBuild(); }); diff --git a/tools/tests/old/test-bundler-options.js b/tools/tests/old/test-bundler-options.js index 538fa9a61b..2bf8d00aa1 100644 --- a/tools/tests/old/test-bundler-options.js +++ b/tools/tests/old/test-bundler-options.js @@ -27,7 +27,6 @@ var makeProjectContext = async function (appName) { var projectContext = new projectContextModule.ProjectContext({ projectDir: projectDir }); - await projectContext.init(); await doOrThrow(async function () { await projectContext.prepareProjectForBuild(); }); diff --git a/tools/tests/wipe-all-packages.js b/tools/tests/wipe-all-packages.js index 3cfc16936e..016c3aa52a 100644 --- a/tools/tests/wipe-all-packages.js +++ b/tools/tests/wipe-all-packages.js @@ -35,9 +35,9 @@ selftest.define("wipe all packages", ['slow', 'custom-warehouse'], async functio containsPlugins: false }; }; - var meteorToolBuild = async function (v) { + var meteorToolBuild = function (v) { return { - buildArchitectures: await archinfo.host(), + buildArchitectures: archinfo.host(), versionId: 'VID' + v.replace(/\./g, ''), _id: utils.randomToken() }; @@ -50,7 +50,7 @@ selftest.define("wipe all packages", ['slow', 'custom-warehouse'], async functio collections: { packages: [], versions: [meteorToolVersion('33.0.1'), meteorToolVersion('33.0.2'), meteorToolVersion('33.0.3')], - builds: [await meteorToolBuild('33.0.1'), await meteorToolBuild('33.0.2'), await meteorToolBuild('33.0.3')], + builds: [meteorToolBuild('33.0.1'), meteorToolBuild('33.0.2'), meteorToolBuild('33.0.3')], releaseTracks: [], releaseVersions: [] } diff --git a/tools/tool-testing/selftest.js b/tools/tool-testing/selftest.js index 0477393623..7d53bfc41a 100644 --- a/tools/tool-testing/selftest.js +++ b/tools/tool-testing/selftest.js @@ -30,10 +30,17 @@ export const fail = parseStackMarkTop(function (reason) { // with 'actual' being the value that the test got and 'expected' // being the expected value export const expectEqual = parseStackMarkTop(async function (actual, expected) { - if (! (await loadIsopackage('ejson')).EJSON.equals(actual, expected)) { - throw new TestFailure("not-equal", { - expected, - actual, + try { + const ejson = await loadIsopackage("ejson"); + if (!ejson.EJSON.equals(actual, expected)) { + throw new TestFailure("not-equal", { + expected, + actual, + }); + } + } catch (e) { + throw new TestFailure("Can't load ejson isopackage" , { + stack: e.stack, }); } });