diff --git a/.circleci/config.yml b/.circleci/config.yml index 3020df1304..eae8da0cea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -128,8 +128,9 @@ jobs: - package-npm-deps-cache-group2-v3- - restore_cache: keys: - - v2-other-deps-cache-{{ .Branch }}-{{ .Revision }} - - v2-other-deps-cache-{{ .Branch }}- + - v3-other-deps-cache-{{ .Branch }}-{{ checksum "meteor" }}-{{ .Revision }} + - v3-other-deps-cache-{{ .Branch }}-{{ checksum "meteor" }}- + - v3-other-deps-cache-{{ .Branch }}- - restore_cache: keys: - v1-test-groups-{{ .Branch }} @@ -147,6 +148,10 @@ jobs: name: Get Ready command: | eval $PRE_TEST_COMMANDS; + pushd tools + # Ensure that meteor/tools has no TypeScript errors. + ../meteor npx tsc --noEmit + popd ./meteor --get-ready # shouldn't take longer than 20 minutes no_output_timeout: 20m @@ -764,7 +769,7 @@ jobs: - packages/fetch/.npm/package/node_modules - packages/non-core/mongo-decimal/.npm/package/node_modules - save_cache: - key: v2-other-deps-cache-{{ .Branch }}-{{ .Revision }} + key: v3-other-deps-cache-{{ .Branch }}-{{ checksum "meteor" }}-{{ .Revision }} paths: - ".babel-cache" - ".meteor" diff --git a/.eslintignore b/.eslintignore index 42f463beff..50cced0770 100644 --- a/.eslintignore +++ b/.eslintignore @@ -27,19 +27,18 @@ tools/deploy.js tools/fiber-helpers.js tools/fs/files.js tools/fs/mini-files.js -tools/func-utils.js tools/http-helpers.js tools/inspector.js tools/index.js -tools/mongo-exit-codes.js -tools/processes.js -tools/progress.js +tools/mongo-exit-codes.ts +tools/processes.ts +tools/progress.ts tools/project-context.js tools/runners/run-log.js tools/fs/safe-pathwatcher.js tools/selftest.js tools/service-connection.js -tools/shell-client.js +tools/shell-client.ts tools/stats.js tools/test-utils.js tools/upgraders.js diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000000..518a2c5a76 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,16 @@ +# Configuration for probot-stale - https://github.com/probot/stale +daysUntilStale: 32 +daysUntilClose: 8 +exemptLabels: + - pinned + - security + - confirmed +staleLabel: stale-bot +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +closeComment: > + This issue has been automatically closed it has not had recent activity. +only: issues + diff --git a/.mailmap b/.mailmap index 636b51410b..afea9abd97 100644 --- a/.mailmap +++ b/.mailmap @@ -13,7 +13,7 @@ # A command-line way to get the GitHub username for an author: # scripts/admin/find-author-github.sh 'User Name ' # (Note that this script always outputs GITHUB so you should manually -# check to see if they are an MDG employee!) +# check to see if they are an Meteor Software employee!) GITHUB: 0a- GITHUB: adnissen diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2479865a57..d122da417d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,7 +17,7 @@ There are many ways to contribute to the Meteor Project. Here’s a list of tech - [Reviewing pull requests](CONTRIBUTING.md#reviewer) - [Maintaining a community package](CONTRIBUTING.md#community-package-maintainer) -There are also several ways to contribute to the Meteor Project outside of GitHub, like organizing or speaking at [Meetups](https://www.meetup.com/topics/meteor/) and events and helping to moderate our [forums](https://forums.meteor.com/). +There are also several ways to contribute to the Meteor Project outside of GitHub, like organizing or speaking at [Meetups](https://forums.meteor.com/c/meetups) and events and helping to moderate our [forums](https://forums.meteor.com/). If you can think of any changes to the project, [documentation](https://github.com/meteor/docs), or [guide](https://github.com/meteor/guide) that would improve the contributor experience, let us know by opening an issue in the correct repository! @@ -27,7 +27,7 @@ We curate specific issues that would make great pull requests for community cont Issues which *also* have the `confirmed` label ([bugs](https://github.com/meteor/meteor/issues?q=is%3Aissue%20is%3Aopen%20label%3Apull-requests-encouraged%20label%3Aconfirmed) / [feature requests](https://github.com/meteor/meteor-feature-requests/issues?q=is%3Aissue%20is%3Aopen%20label%3Apull-requests-encouraged%20label%3Aconfirmed)) are considered to have their details clear enough to begin working on. -Any issue which does not have the `confirmed` label still requires discussion on implementation details but input and positive commentary is welcome! Any pull request opened on an issue which is not `confirmed` is still welcome, however the pull-request is more likely to be sent back for reworking than a `confirmed` issue. If in doubt about the best way to implement something, please create additional conversation on the issue. +Any issue which does not have the `confirmed` label still requires discussion on implementation details but input and positive commentary is welcome! Any pull request opened on an issue which is not `confirmed` is still welcome, however the pull-request is more likely to be sent back for reworking than a `confirmed` issue. If in doubt about the best way to implement something, please create additional conversation on the issue. You can also reach Filipe Névola (Meteor Developer Evangelist) and he will help you to find something interesting to work on. Please note that `pull-requests-encouraged` issues with low activity will often be closed without being implemented. These issues are tagged with an additional [`not-implemented`](https://github.com/meteor/meteor/issues?utf8=✓&q=label%3Apull-requests-encouraged+label%3Anot-implemented) label, and can still be considered good candidates to work on. If you're interested in working on a closed and `not-implemented` issue, please let us know by posting on that issue. @@ -40,33 +40,36 @@ We’ve just begun to create more defined project roles for Meteor. Here are des Issue Triagers are members of the community that meet with us weekly to help triage Meteor’s open issues and bug reports. Once you’ve begun triaging issues regularly on your own, we will invite you to join our dedicated Slack channel to participate in these regular coordination sessions. Current Issue Triagers: -- [@hwillson](https://github.com/hwillson) -- [@laosb](https://github.com/laosb) -- [@abernix](https://github.com/abernix) -- [@lorensr](https://github.com/lorensr) -- [@klaussner](https://github.com/klaussner) +- [meteor](https://github.com/meteor/meteor) + - [@klaussner](https://github.com/klaussner) + +- [docs](https://github.com/meteor/docs) / [guide](https://github.com/meteor/guide) + - [@lorensr](https://github.com/lorensr) #### Reviewer Our most regular and experienced Issue Triagers sometimes move on to doing code reviews for pull requests, and have input into which pull requests should be merged. Current Reviewers: -- [@hwillson](https://github.com/hwillson) -- [@lorensr](https://github.com/lorensr) -- [@abernix](https://github.com/abernix) -- [@klaussner](https://github.com/klaussner) -- [@zodern](https://github.com/zodern) +- [meteor](https://github.com/meteor/meteor) + - [@klaussner](https://github.com/klaussner) + - [@zodern](https://github.com/zodern) + - [@benjamn](https://github.com/benjamn) + - [@abernix](https://github.com/abernix) + - [@hwillson](https://github.com/hwillson) + - [@filipenevola](https://github.com/filipenevola) + +- [docs](https://github.com/meteor/docs) / [guide](https://github.com/meteor/guide) + - [@lorensr](https://github.com/lorensr) + - [@filipenevola](https://github.com/filipenevola) #### Core Committer -For now, the only contributors with commit access to meteor/meteor are employees of Meteor Development Group, the company that sponsors the Meteor project. We're actively exploring adding non-MDG core committers who have distinguished themselves in other contribution areas. - -Project Lead: [@benjamn](https://github.com/benjamn) +The contributors with commit access to meteor/meteor are employees of Meteor Software Ltd or community members who have distinguished themselves in other contribution areas. If you want to become a core committer please start writing PRs. Current Core Committers: -- [@abernix](https://github.com/abernix) -- [@glasser](https://github.com/glasser) -- [@hwillson](https://github.com/hwillson) +- [@benjamn](https://github.com/benjamn) +- [@filipenevola](https://github.com/filipenevola) #### Documentation Maintainer @@ -83,12 +86,11 @@ Community package maintainers are community members who maintain packages outsid Current Community Package Maintainers: - [@mitar](https://github.com/mitar) for [Blaze](https://github.com/meteor/blaze) -#### Community Manager +#### Developer Evangelist -The community manager helps to coordinate resources, documentation, events, and other supportive work needed to ensure the health of the Meteor project. +- [@filipenevola](https://github.com/filipenevola) (Feel free to reach him out on [Twitter](https://twitter.com/FilipeNevola)) -Previous Community Manager (this role is currently unfilled): -- [@theadactyl](https://github.com/theadactyl) +[Read more](https://forums.meteor.com/t/im-joining-meteor-as-developer-evangelist/50613/2) ### Tracking project work @@ -150,9 +152,7 @@ for more details on proposing changes to core code. Feature requests are tracked in the [meteor/meteor-feature-requests](https://github.com/meteor/meteor-feature-requests) repository, and include a label that corresponds to the Meteor subproject that they are a part of. Meteor is a big project with [many sub-projects](https://github.com/meteor/meteor/tree/devel/packages). -There aren't as many [core developers (we're hiring!)](https://www.meteor.io/jobs/) -as there are sub-projects, so we're not able to work on every single sub-project every -month. We use our [roadmap](Roadmap.md) to communicate the high-level features we're currently prioritizing. +Community is welcome to help in all the sub-projects. We use our [roadmap](Roadmap.md) to communicate the high-level features we're currently prioritizing. Every additional feature adds a maintenance cost in addition to its value. This cost starts with the work of writing the feature or reviewing a community pull @@ -173,7 +173,7 @@ A great way to contribute to Meteor is by helping keep the issues in the reposit ## Documentation -If you'd like to contribute to Meteor's documentation, head over to https://github.com/meteor/docs and create issues or pull requests there. +If you'd like to contribute to Meteor's documentation, head over to https://github.com/meteor/docs or https://github.com/meteor/guide and create issues or pull requests there. ## Blaze @@ -184,7 +184,7 @@ Blaze lives in its [own repository](https://github.com/meteor/blaze/) with its o Eventually you may want to change something in a core Meteor package, or in the `meteor` command line tool. These changes have the highest standards for API design, for the names of symbols, for documentation, -and for the code itself. Be prepared for a lot of work! +and for the code itself. It may take some study to get comfortable with Meteor's core architecture. Each core package is designed to stand separately. At the same time, all the parts of core fit together to make the @@ -233,9 +233,9 @@ Once your feature has been labelled with `pull-requests-encouraged`, leave a com ### Submitting pull requests -Once you've come up with a good design, go ahead and submit a pull request (PR). If your PR isn't against a bug with the `confirmed` label or a feature request with the `pull-requests-encouraged` label, don't expect your PR to be merged unless it's a trivial and obvious fix (e.g. documentation). When submitting a PR, please follow these guidelines: +Once you've come up with a good design, go ahead and submit a pull request (PR). When submitting a PR, please follow these guidelines: - * Sign the [contributor's agreement](http://contribute.meteor.com/). + * Sign the CLA (the bot will ask you do to this in the PR). * Base all your work off of the **devel** branch. The **devel** branch is where active development happens. **We do not merge pull requests diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index e3b602b607..f292452bee 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -94,9 +94,9 @@ This will generate a new tarball (`dev_bundle___.tar.gz ### Submitting "Dev Bundle" Pull Requests -It's important to note that while `dev_bundle` pull requests are accepted/reviewed, a new `dev_bundle` can only be published to MDG's Meteor infrastructure by an MDG staff member. This means that the build tool and package tests of submitted `dev_bundle` pull requests will always initially fail (since the new `dev_bundle` hasn't yet been built/published by MDG, which means it can't be downloaded by Meteor's continuous integration environment). +It's important to note that while `dev_bundle` pull requests are accepted/reviewed, a new `dev_bundle` can only be published to Meteor Software's Meteor infrastructure by an Meteor Software staff member. This means that the build tool and package tests of submitted `dev_bundle` pull requests will always initially fail (since the new `dev_bundle` hasn't yet been built/published by Meteor Software, which means it can't be downloaded by Meteor's continuous integration environment). -Pull requests that contain `dev_bundle` changes will be noted by repo collaborators, and a request to have a new `dev_bundle` built/published will be forwarded to MDG. +Pull requests that contain `dev_bundle` changes will be noted by repo collaborators, and a request to have a new `dev_bundle` built/published will be forwarded to Meteor Software. ## Additional documentation diff --git a/History.md b/History.md index 9ab2a7e51a..5bb29b50cc 100644 --- a/History.md +++ b/History.md @@ -1,5 +1,8 @@ ## v.NEXT +### Changes + +* The `meteor-babel` npm package has been updated to version 7.7.4. * `Meteor.user()`, `Meteor.findUserByEmail()` and `Meteor.findUserByUserName()` can take a new `options` parameter which can be used to limit the returned fields. Useful for minimizing DB bandwidth on the server and avoiding unnecessary reactive UI updates on the client. @@ -14,7 +17,143 @@ `accounts-password` packages have been optimized with explicit field selectors to only fetch the fields needed by the functions they are in. [Issue #10469](https://github.com/meteor/meteor/issues/10469) - + +## v1.8.2, 2019-11-14 + +### Breaking changes + +* Module-level variable declarations named `require` or `exports` are no + longer automatically renamed, so they may collide with module function + parameters of the same name, leading to errors like + `Uncaught SyntaxError: Identifier 'exports' has already been declared`. + See [this comment](https://github.com/meteor/meteor/pull/10522#issuecomment-535535056) + by [@SimonSimCity](https://github.com/SimonSimCity). + +### Migration Steps + +* Be sure to update the `@babel/runtime` npm package to its latest version + (currently 7.7.2): + ```sh + meteor npm install @babel/runtime@latest + ``` + +* New Meteor applications now depend on `meteor-node-stubs@1.0.0`, so it + may be a good idea to update to the same major version: + ```sh + meteor npm install meteor-node-stubs@next + ``` + +* If you are the author of any Meteor packages, and you encounter errors + when using those packages in a Meteor 1.8.2 application (for example, + `module.watch` being undefined), we recommend that you bump the minor + version of your package and republish it using Meteor 1.8.2, so + Meteor 1.8.2 applications will automatically use the new version of the + package, as compiled by Meteor 1.8.2: + ```sh + cd path/to/your/package + # Add api.versionsFrom("1.8.2") to Package.onUse in package.js... + meteor --release 1.8.2 publish + ``` + This may not be necessary for all packages, especially those that have + been recently republished using Meteor 1.8.1, or local packages in the + `packages/` directory (which are always recompiled from source). + However, republishing packages is a general solution to a wide variety + of package versioning and compilation problems, and package authors can + make their users' lives easier by handling these issues proactively. + +### Changes + +* Node has been updated to version + [8.16.2](https://nodejs.org/en/blog/release/v8.16.2/). + +* The `npm` npm package has been updated to version 6.13.0, and our + [fork](https://github.com/meteor/pacote/tree/v9.5.9-meteor) of its + `pacote` dependency has been updated to version 9.5.9. + +* New Meteor applications now include an official `typescript` package, + supporting TypeScript compilation of `.ts` and `.tsx` modules, which can + be added to existing apps by running `meteor add typescript`. + +* New TypeScript-based Meteor applications can be created by running + ```sh + meteor create --typescript new-typescript-app + ``` + This app skeleton contains a recommended tsconfig.json file, and should + serve as a reference for how to make TypeScript and Meteor work together + (to the best of our current knowledge). + [PR #10695](https://github.com/meteor/meteor/pull/10695) + +* When bundling modern client code, the Meteor module system now prefers + the `"module"` field in `package.json` (if defined) over the `"main"` + field, which should unlock various `import`/`export`-based optimizations + such as tree shaking in future versions of Meteor. As before, server + code uses only the `"main"` field, like Node.js, and legacy client code + prefers `"browser"`, `"main"`, and then `"module"`. + [PR #10541](https://github.com/meteor/meteor/pull/10541), + [PR #10765](https://github.com/meteor/meteor/pull/10765). + +* ECMAScript module syntax (`import`, `export`, and dynamic `import()`) is + now supported by default everywhere, including in modules imported from + `node_modules`, thanks to the [Reify](https://github.com/benjamn/reify) + compiler. + +* If you need to import code from `node_modules` that uses modern syntax + beyond module syntax, it is now possible to enable recompilation for + specific npm packages using the `meteor.nodeModules.recompile` option in + your application's `package.json` file. + See [PR #10603](https://github.com/meteor/meteor/pull/10603) for further + explanation. + +* The Meteor build process is now able to detect whether files changed in + development were actually used by the server bundle, so that a full + server restart can be avoided when no files used by the server bundle + have changed. Client-only refreshes are typically much faster than + server restarts. Run `meteor add autoupdate` to enable client refreshes, + if you are not already using the `autoupdate` package. + [Issue #10449](https://github.com/meteor/meteor/issues/10449) + [PR #10686](https://github.com/meteor/meteor/pull/10686) + +* The `mongodb` npm package used by the `npm-mongo` Meteor package has + been updated to version 3.2.7. + +* The `meteor-babel` npm package has been updated to version 7.7.0, + enabling compilation of the `meteor/tools` codebase with TypeScript + (specifically, version 3.7.2 of the `typescript` npm package). + +* The `reify` npm package has been updated to version 0.20.12. + +* The `core-js` npm package used by `ecmascript-runtime-client` and + `ecmascript-runtime-server` has been updated to version 3.2.1. + +* The `terser` npm package used by `minifier-js` (and indirectly by + `standard-minifier-js`) has been updated to version 4.3.1. + +* The `node-gyp` npm package has been updated to version 5.0.1, and + `node-pre-gyp` has been updated to 0.13.0. + +* The `optimism` npm package has been updated to version 0.11.3, which + enables caching of thrown exceptions as well as ordinary results, in + addition to performance improvements. + +* The `pathwatcher` npm package has been updated to version 8.1.0. + +* The `underscore` npm package installed in the Meteor dev bundle (for use + by the `meteor/tools` codebase) has been updated from version 1.5.2 to + version 1.9.1, and `@types/underscore` has been installed for better + TypeScript support. + +* In addition to the `.js` and `.jsx` file extensions, the `ecmascript` + compiler plugin now automatically handles JavaScript modules with the + `.mjs` file extension. + +* Add `--cordova-server-port` option to override local port where Cordova will + serve static resources, which is useful when multiple Cordova apps are built + from the same application source code, since by default the port is generated + using the ID from the application's `.meteor/.id` file. + +* The `--test-app-path ` option for `meteor test-packages` and + `meteor test` now accepts relative paths as well as absolute paths. + ## v1.8.1, 2019-04-03 ### Breaking changes @@ -181,7 +320,6 @@ N/A ### Migration Steps * Update the `@babel/runtime` npm package to version 7.0.0 or later: - ```sh meteor npm install @babel/runtime@latest ``` @@ -908,6 +1046,20 @@ N/A [Feature #24](https://github.com/meteor/meteor-feature-requests/issues/24) [PR #9657](https://github.com/meteor/meteor/pull/9657) +## v1.6.1.4, 2018-08-16 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Node has been updated to version + [8.11.4](https://nodejs.org/en/blog/release/v8.11.4/), an important + [security release](https://nodejs.org/en/blog/vulnerability/august-2018-security-releases/). + ## v1.6.1.3, 2018-06-16 ### Breaking changes diff --git a/ISSUE_TRIAGE.md b/ISSUE_TRIAGE.md index 8cc0507a1d..defbda525b 100644 --- a/ISSUE_TRIAGE.md +++ b/ISSUE_TRIAGE.md @@ -21,6 +21,8 @@ All issues follow the flow outlined below. Your job as an issue maintainer is to The first step is in determining whether the issue is a bug, help question or feature request. Read on for more details. +We have [Stale bot](https://github.com/probot/stale) watching this repository with these [settings](https://github.com/meteor/meteor/blob/devel/.github/stale.yml) and closing stale issues. Issues marked as `confirmed`, `pinned` or `security` are never considered stale. + ### Bugs 1. Duplicates should be closed and marked as such. diff --git a/LICENSE b/LICENSE index 10a91f042c..b21d2ed158 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2011 - 2018 Meteor Development Group, Inc. +Copyright (c) 2011 - 2019 Meteor Software Ltd. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 41c0e884eb..2d0593dc8f 100644 --- a/README.md +++ b/README.md @@ -47,8 +47,8 @@ meteor Building an application with Meteor? -* Announcement list: sign up at http://www.meteor.com/ -* Having problems? Ask for help at: http://stackoverflow.com/questions/tagged/meteor +* Announcement list: sign up at https://www.meteor.com/ +* Having problems? Ask for help at: https://stackoverflow.com/questions/tagged/meteor * Discussion forums: https://forums.meteor.com/ Interested in helping or contributing to Meteor? These resources will help: diff --git a/Roadmap.md b/Roadmap.md index 09dd9b01dd..aad0c035f2 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -1,188 +1,262 @@ - - # Meteor Roadmap -**Up to date as of October 9, 2018** +**Up to date as of December 10, 2019** -This document describes the high level features the Meteor project maintainers have decided to prioritize in the near- to medium-term future. A large fraction of the maintainers’ time will be dedicated to working on the features described here. As with any roadmap, this is a living document that will evolve as priorities and dependencies shift; we aim to update the roadmap with any changes or status updates on a monthly basis. +This document describes the high-level features and actions for the Meteor project in the near- to medium-term future. This roadmap was built based on community feedback and to improve areas where Meteor is already strong. The description of many items include sentences and ideas from Meteor community members. -Contributors are encouraged to focus their efforts on work that aligns with the roadmap as maintainers will prioritize their time spent reviewing PRs and issues around these contributions. This however does not mean that PRs against other features and bugs will automatically be rejected. +As with any roadmap, this is a living document that will evolve as priorities and dependencies shift; we aim to update the roadmap with any changes or status updates every quarter. -Items can be added to this roadmap by first getting design approval for a solution to an open issue, as outlined by our [contributing guidelines](https://github.com/meteor/meteor/blob/devel/CONTRIBUTING.md). Then, when a contributor has committed to solving the issue in the short to medium term, they can submit a PR to add that work to the roadmap. All other PRs to the roadmap will be rejected. +Contributors are encouraged to focus their efforts on work that aligns with the roadmap then we can work together in these areas. -## Out of the box support for advanced React features +PRs to the roadmap are welcome. If you are willing to contribute please open a PR explaining your ideas and what you would be able to do yourself. -React is the most popular way to build UIs in JavaScript today, and a great companion to the rest of the features provided by Meteor. Meteor's zero-configuration environment provides a great opportunity to make features React apps depend on work out of the box. This includes features like: +Ideally, every item in this roadmap should have at least two leaders, leaders are people that are interested in the item and would like to help. If you are interested please open a PR including yourself and describing how do you want to help. -1. Automatic selection of development vs. production build of React (completed) -2. Abstraction for isomorphic server-side rendering ([ongoing](https://github.com/meteor/meteor/blob/devel/packages/server-render/README.md)) -3. Integration of [dynamic imports](https://blog.meteor.com/dynamic-imports-in-meteor-1-5-c6130419c3cd) with React SSR -4. Full support for optimized CSS-in-JS features of libraries like [styled-components](https://www.styled-components.com/) +## Core +### Update to Node.js 12 +- Leaders: [Ben Newman](https://github.com/benjamn) +- Status: In Progress +- PRs: https://github.com/meteor/meteor/pull/10527 -We think Meteor has a clear set of benefits when compared to other popular React frameworks like Create React App and Next.js. +Since Node.js 12 is scheduled to become the LTS version on October 1st, 2019, Meteor 1.9 will update the Node.js version used by Meteor from 8.16.1 (in Meteor 1.8.2) to 12.10.0 (the most recent current version). -## Remove blockers to Meteor adoption +### Tree Shaking +- Leaders: [Ben Newman](https://github.com/benjamn) +- Status: - +- PRs: - -### Make the `meteor` command-line tool installable from npm +Implement tree shaking / dead code elimination, which involves pruning the dependency tree while scanning imports in the `ImportScanner`. We believe it should be possible to treat values like `Meteor.isProduction` as constants during this process, and eliminate those branches if their conditions are false. -Installing `meteor` from npm would enable developers to use it as build tool for npm-based projects, and would simplify the Meteor release process by getting rid of the "dev bundle" (essentially the npm dependencies of the command-line tool). +### Service worker build target +- Leaders: +- Status: - +- PRs: - -The biggest blockers to this project are +A proper service worker build target. Regular Web Workers can be built from a function.toString() but service-workers require an actual server route. -1. deciding whether/how to preserve Meteor release versions, and -2. changing the API of the package server so that you don't have to download the entire package database locally. +### Ultra-thin Meteor +- Leaders: +- Status: - +- PRs: - -## Page load performance improvements +[Meteor 1.7](https://github.com/meteor/meteor/blob/devel/History.md#v17-2018-05-28) introduced the `meteor create --minimal` command, which generates a new application without any unnecessary Meteor packages, like `mongo` and `ddp`. -*Ongoing* +When minified and gzip-compressed, the JS bundle for this app weighs in at less than 20kB, which is much smaller than the default `meteor create` application. Nevertheless, there is still room for improvement, using techniques like bundle visualization (`meteor npm run visualize`) and converting static `import`s to dynamic `import()`s. -Speeding up page load times will require a combination of new tools for asynchronous JavaScript delivery (code splitting), dead code elimination, deferred evaluation of JavaScript modules, and performance profiling (so that developers can identify expensive packages). +Additionally, minimal Meteor applications do not include the `autoupdate` package by default, because it is not strictly necessary for building an application, and its dependencies (`ddp` in particular, but no longer `mongo` or `minimongo`, thanks to [PR #10238](https://github.com/meteor/meteor/pull/10238)) contribute an additional 30kB to the JS bundle. The drawback of not using `autoupdate` is that instantaneous client refreshes are disabled, which can slow down development, so it would be great to find a way of making `autoupdate` less expensive, or enable it only in development. -### Making large dependencies optional +In other words, we want minimal Meteor apps to be not only as tiny as possible, but also just as developer-friendly as a normal Meteor application. -Making it possible to remove (or dynamically load) large dependencies like `jquery`, `underscore`, and `minimongo` will have a significant impact on bundle sizes. +Related issues: +* [MFR #31](https://github.com/meteor/meteor-feature-requests/issues/31) +* [MFR #354](https://github.com/meteor/meteor-feature-requests/issues/354) +* [Issue #9960](https://github.com/meteor/meteor/issues/9960) +* [PR #8853](https://github.com/meteor/meteor/pull/8853) +* [PR #10238](https://github.com/meteor/meteor/pull/10238) -### More aggressive client caching +### Page load performance improvements +- Leaders: [Seba Kerckhof](https://github.com/sebakerckhof) +- Status: - +- PRs: - -Using `Cache-Control: immutable` to cache the initial JavaScript bundle will reduce the amortized cost of downloading the initial JavaScript bundle in newer browsers. +Make sure we are not delivering any dependency that is not used ([Issue #10701](https://github.com/meteor/meteor/issues/10701), [Issue #10702](https://github.com/meteor/meteor/issues/10702), [Issue #10704](https://github.com/meteor/meteor/issues/10704), [PR #10792](https://github.com/meteor/meteor/pull/10792)) -Dynamic `import(...)` benefits dramatically from storing previously-received module versions in [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API), though it may be possible to use IndexedDB in a faster way. +### Improve Rebuild performance +- Leaders: [zodern](https://github.com/zodern) / [Marcelo T Prado](https://github.com/MarceloPrado) +- Status: - +- PRs: - -### Better dead code elimination +Explore ideas to improve rebuild time such as split main client bundle into several bundles, split the server bundle into several bundles, store less file content in memory, option to disabling the legacy build (at least in dev mode), etc -Although Meteor minifies JavaScript in production, and modules that are never imported are not included in the client bundle, Meteor could do a better job of removing code within modules that will never be used, according to static analysis. The static syntax of ECMAScript 2015 `import` and `export` declarations should make this analysis easier. +### Performance improvements on Windows +- Leaders: [zodern](https://github.com/zodern) +- Status: - +- PRs: - +Explore ideas to improve performance on Windows such as build in place. -## Full transition to npm +### Hot Module Replacement +- Leaders: +- Status: - +- PRs: - -*Status: We encourage publishing Meteor-related packages to npm where possible. We are investigating ways to make it possible to move some parts of Meteor core onto npm without making the installation process more complex.* +Explore ideas to implement HMR in Meteor. -The community has rallied around npm as the de-facto standard package manager for JavaScript. We believe committing fully to npm will strengthen the entire JavaScript ecosystem by removing fragmentation, will benefit existing Meteor developers by making it seamless to use any JavaScript package and increase Meteor adoption by aligning it with JavaScript best practices. +### Transition as much as possible to NPM +- Leaders: +- Status: - +- PRs: - -1.3 introduced `npm install` support along with ES2015 modules. In the future, we would like to transition the Meteor package ecosystem over entirely from Atmosphere to npm. We are still in the early conceptual design phase and expect to update the roadmap once we have a design in place that will underpin further development. +Migrate packages that do not depend on Meteor exclusive features to NPM and we also continue to encourage new packages to be published as NPM packages when possible. +## Cordova +### Update Cordova to 9 +- Leaders: [Filipe Névola](https://github.com/filipenevola) / [Renan Castro](https://github.com/renanccastro) +- Status: In Progress +- PRs: https://github.com/meteor/meteor/pull/10810 -## GraphQL Data: SQL, REST, performance +Update Cordoba lib and its dependencies to latest (version 9) -*Status: In progress at [http://dev.apollodata.com/](http://dev.apollodata.com/)* +### Cordova documentation +- Leaders: +- Status: - +- PRs: - -We're building a next generation GraphQL-focused data stack for modern applications called Apollo. We believe that this spiritual successor to the data part of the Meteor stack is impactful enough to deserve it's own fully fledged project that is compatible with other languages and frameworks. Apollo is born from the Meteor project and works perfectly with Meteor today. +Provide a skeleton with mobile native configurations already in place such as `mobile-config.js`, sample assets, Fastlane scripts, etc. Also improve docs and guide ([Forums post](https://forums.meteor.com/t/lets-create-the-ultimate-cordova-hot-code-push-faq-doc/50500)). -Apollo is our approach to giving Meteor developers SQL and other database support, the ability to choose between realtime and static data, and improved performance analysis. We are working on providing better tools and documentation for Meteor developers to integrate Apollo into their apps, and welcome contributions in this area. The next priority for Apollo and Meteor is enabling Meteor developers to choose to replace MongoDB entirely with GraphQL on top of other storage engines. +## DB +### Update MongoDB driver +- Leaders: +- Status: - +- PRs: https://github.com/meteor/meteor/pull/10723 -Even though Apollo could eventually be a complete replacement for Meteor’s included Mongo/DDP data stack, you should feel good about Meteor’s existing data system. We are currently open to ideas around performance and stability improvements. +Update to Mongodb driver from 3.2.7 to 3.3.5, this version is compatible with MongoDB 4.2. -# **Recently completed** +### Minimongo secondary index support +- Leaders: +- Status: - +- PRs: - -## Different JS bundles for modern versus legacy browsers +Improve index support for Minimongo to enable better performance in the client for databases with thousands of documents. ([Issue #10703](https://github.com/meteor/meteor/issues/10703)) -*Pull request: https://github.com/meteor/meteor/pull/9439* +## Documentation +### Step-by-step guide +- Leaders: +- Status: - +- PRs: - -Despite amazing progress in the latest versions of popular web browsers to support the vast majority of the ECMAScript specification, most web applications are still forced to compile their JavaScript for the oldest browsers they want to support, which means native support for the latest features is usually off-limits. +Provide a nice and friendly introduction for people that are learning Meteor. -Starting in Meteor 1.6.2, Meteor will build two different client JS bundles, one for modern browsers (`web.browser`) and another for legacy browsers (`web.browser.legacy` and `web.cordova`), in addition to the server bundle which targets Node 8. Package authors can use these architectures to include files only in legacy browsers, or only in modern browsers, while also setting minimum browser versions for the native features they require. As of this writing, modern browsers are loosely defined as any browsers with native support for `async` functions and `await` expressions, which represents [more than 80% of web usage today](https://caniuse.com/#feat=async-functions). +### Update Blaze Tutorial +- Leaders: +- Status: - +- PRs: - -While it was tempting to compile even more bundles for different categories of browser support, the reality of the web today is that most users have access to self-updating "evergreen" browsers, with nearly complete ECMAScript support, and the market share of evergreen browsers is only going to increase with time. For everyone else, Meteor will automatically provide the same level of compilation provided to everyone by Meteor 1.6.1 and before. It's also a lot easier to test two different bundles in representative browsers than it is to test a whole matrix of possibilities. +Blaze tutorial should reflect latest best practices. -As a result of these changes, a typical new Meteor app will have a modern client JS bundle that is one quarter to one third the size of the legacy JS bundle. A new app created with `meteor create --release 1.6.2-beta.12 --minimal new-app` will have a modern JS bundle just 15KB in size (minified + gzip), for example. +### Update Angular Tutorial +- Leaders: +- Status: - +- PRs: - + +Angular tutorial should reflect latest best practices for using Meteor and Angular together. + +### Update React Tutorial +- Leaders: [Filipe Névola](https://github.com/filipenevola) +- Status: - +- PRs: - + +React tutorial should reflect latest best practices for using Meteor and React together. + +### PWA documentation +- Leaders: +- Status: - +- PRs: - + +Provide a skeleton with PWA configurations already in place such as `manifest`, service worker, Open Graph meta tags, etc. Also improve docs and guide. + +### SSR documentation +- Leaders: +- Status: - +- PRs: - + +Provide a skeleton with SSR configurations already in place. + +### Tests documentation +- Leaders: [Simon Schick](https://github.com/SimonSimCity) / [Florian Bienefelt](https://github.com/Floriferous) +- Status: - +- PRs: - + +Provide samples on how to run tests in Meteor these samples should include unit tests and also cypress tests. + +## First-class citizen Technologies +Consider Vue.js, Svelte, React Native, and Apollo as first-class citizen, for +each technology we would like to have: +- skeleton (meteor create) +- tutorial +- documentation (how to use) +- examples + +as we already have for Blaze, React and Angular. + +### Vue.js +- Leaders: +- Status: - +- PRs: - + +### Svelte +- Leaders: +- Status: - +- PRs: - + +### React Native +- Leaders: +- Status: - +- PRs: - + +### Apollo +- Leaders: +- Status: - +- PRs: - + +### Third-party tools with their own build steps + +- Leaders: +- Status: - +- PRs: - + +Remove limitations that prevent using third-party tools with their own build steps, such as Storybook or Jest. + +Relevant discussions: +- https://github.com/meteor/meteor/pull/10811#issuecomment-564726713 +- https://github.com/storybookjs/storybook/issues/5975 + +## Recently completed + +### Different JS bundles for modern versus legacy browsers + +- Status: shipped in Meteor 1.6.2. +- PRs: https://github.com/meteor/meteor/pull/9439 ### Eliminate the need for an `imports` directory -*Status: possible using `meteor.mainModule` in `package.json` in `1.6.2-beta.12`.* -*Pull requests: https://github.com/meteor/meteor/pull/9690, https://github.com/meteor/meteor/pull/9714, https://github.com/meteor/meteor/pull/9715* +- Status: shipped in Meteor 1.6.2. +- PRs: https://github.com/meteor/meteor/pull/9690, https://github.com/meteor/meteor/pull/9714, https://github.com/meteor/meteor/pull/9715 -When Meteor 1.3 first introduced a module system based on [CommonJS](http://wiki.commonjs.org/wiki/Modules/1.1) and [ECMAScript module syntax](2ality.com/2014/09/es6-modules-final.html), we had to provide a way for developers to migrate their apps from the old ways of loading code, whereby all files were evaluated eagerly during application startup. +### Make Mongo more optional -The best solution at the time was to introduce a special `imports` directory to contain modules that should be loaded lazily (rather than eagerly), when first imported. +- Status: shipped in Meteor 1.6.2. +- PRs: https://github.com/meteor/meteor/pull/8999 -Most other Node applications work this way by default: every module is lazy, and therefore must be imported by another module, and evaluation starts with one "entry point" module (typically specified by the `"main"` field in `package.json`). +### Upgrade to Node 8 -It should be possible for Meteor apps to opt into this behavior, and optionally get rid of their special `imports` directories. The mechanism for opting in will very likely involve putting something in your `package.json` file that specifies entry point modules for both client and server. +- Status: shipped in Meteor 1.6. +- PRs: https://github.com/meteor/meteor/pull/8728 -## Make Mongo more optional +### Upgrade to npm 5 -*Pull request: https://github.com/meteor/meteor/pull/8999* +- Status: shipped in Meteor 1.6 -Meteor has depended on Mongo for as long as the Meteor project has existed. However, we care deeply about supporting other data storage systems (especially via [GraphQL](https://www.apollodata.com/)), and would like to make it possible to avoid using Mongo altogether. +### Dynamic `import(...)` -Since Meteor 1.6.2-beta.9, `meteor create --minimal minimal-app` will create an app with very few packages, without any dependency on Mongo. +- Status: shipped in Meteor 1.5 -### Support the latest stable version of Node +### Rebuild performance improvements -*Tracking pull request: https://github.com/meteor/meteor/pull/8728* +- Status: shipped in Meteor 1.4.2 -See [above](https://github.com/meteor/meteor/blob/devel/Roadmap.md#upgrade-to-node-8). Developers deserve to use the latest underlying technologies, and Meteor is uniquely able to smooth over any rough edges in early/experimental versions of technologies like Node. A number of developers are already using beta versions of Meteor 1.6 to deploy their apps, because the benefits outweigh the risks for them. Just as Meteor 1.5 climbed to more than 50% usage in less than two months, we expect Meteor 1.6 to become the most widely used version of Meteor soon after its release. +### MongoDB updates -## Upgrade to Node 8 +- Status: shipped in Meteor 1.4 -*Status: shipped in Meteor 1.6.* -*Pull request: https://github.com/meteor/meteor/pull/8728* +### Support for Node 4 and beyond -Upgrading Node will allow Meteor to take better advantage of native support for new ECMAScript features on the server, which should speed up build performance and also improve runtime performance, thanks to performance improvements in Node itself. +- Status: shipped in Meteor 1.4 -Perhaps even more importantly, newer versions of Node support a vastly improved debugging experience. Not only can you use native Chrome DevTools and many other debugging clients (WebStorm, VS Code, etc.) to debug your app (no more [`node-inspector`](https://www.npmjs.com/package/node-inspector)), but also the Node process runs at full speed while debugging, so you don't have to wait as long for problems to manifest themselves. +### View Layer -## Upgrade to npm 5 +- Status: Blaze split into new repository and can be published independently as of 1.4.2 -*Status: implemented since `1.6-beta.4`.* - -It’s been an interesting year for npm clients. Once unrivaled as the tool of choice for installing npm packages, the `npm` command-line tool faced some serious competition starting last September from an innovative tool called `yarn`, which promised fast, reproducible installs based on `yarn.lock` files. - -The popularity of `yarn` led Meteor to support `meteor yarn` in addition to `meteor npm` (though you had to `meteor npm install --global yarn` first, so `npm` still had an advantage). Our own Galaxy Server and Optics apps, which are built with Meteor, switched over to `yarn` soon after its release. The appeal was undeniable. - -This competition was a good thing for JavaScript developers, first because yarn solved some long-standing problems with `npm`, and later because `npm@5` responded by shipping its own implementation of some similar features, with `package-lock.json` files and automatic addition of npm install-ed packages to `package.json`. - -These improvements to `npm` will benefit all Meteor developers, even those who keep using `yarn`, because package dependencies specified with `Npm.depends` are automatically installed using `npm`, and `npm@5` performs those installations much faster and more reliably. - -Meteor is careful to remain agnostic about how you choose to populate your `node_modules` directories, so we fully expect that `meteor npm` and `meteor yarn` will remain equally good alternatives for that purpose. - -## Dynamic `import(...)` - -*Status: Shipped in 1.5* - -The banner feature of this effort will be first-class support for [dynamic `import(...)`](https://github.com/tc39/proposal-dynamic-import), which enables asynchronous module fetching. - -Read the recent [blog post](https://blog.meteor.com/meteor-1-5-react-loadable-f029a320e59c) for an overview of how this system will work in Meteor 1.5. - -Remaining work can be found [here](https://github.com/meteor/meteor/blob/release-1.5/packages/dynamic-import/TODO.md), though not all of those ideas will necessarily block the initial 1.5 release. - - -## Rebuild performance improvements - -*Status: Shipped in 1.4.2* - -Rebuild performance refers to the length of time between changing a file in development and being able to reload your app in a browser. After extensive profiling to identify performance hot-spots, and with careful caching of previously completed work, Meteor 1.4.2 takes substantially less time to rebuild most apps, especially larger apps. - - -## MongoDB updates - -*Status: Shipped in 1.4* - -The mongo driver that currently ships with Meteor is old and doesn’t reliably work with connecting to MongoDB 3.2 databases (e.g [#6258](https://github.com/meteor/meteor/issues/6258)). We want to update to the latest driver [#5763](https://github.com/meteor/meteor/issues/5763). -In addition, we'd like to update the dev bundle to ship with the latest stable version of MongoDB (3.2) [#5809](https://github.com/meteor/meteor/issues/5809) as MongoDB 2.6 will be officially sunsetted at the end of October, 2016. - - -## Support for Node 4 and beyond - -*Status: Shipped in 1.4* - -We want to be able to update the version of Node that ships with Meteor to 4 and eventually 6 [#5124](https://github.com/meteor/meteor/issues/5124). [#6537](https://github.com/meteor/meteor/issues/6537) lays the groundwork to overcome the main blocker for updating to Node 4, that is, needing to rebuild all existing Meteor packages that contain binary dependencies. - - -## View Layer - -*Status: Blaze split into new repository and can be published independently as of 1.4.2* - -Our plans around the view layer are to maintain strong integrations (along with guidance) with React, Angular and Blaze. We'll make essential fixes to Blaze but most likely won't be adding new features ourselves. We encourage you to help build the features you need at the [meteor/blaze](https://github.com/meteor/blaze) repository. - - -## Project Governance/Community Contribution - -*Status: Since this topic was added to the roadmap, we have introduced [completely new contribution guidelines](https://github.com/meteor/meteor/blob/devel/CONTRIBUTING.md) that outline exactly how to contribute to Meteor in several ways, including triaging issues, improving documentation, submitting designs for new features, and submitting PRs for bug fixes and improvements. We encourage proposals about how to make the process better via new GitHub issues.* - -Currently, it’s difficult for external developers to make meaningful contributions to Meteor as there is no clear guidance on what to work on, how best to do that work and signals around what will/won’t get merged. We plan on fixing this by creating tight documentation around how the project is developed (e.g the [Swift contribution guidelines](https://swift.org/contributing/)) and giving contributors a path towards earning increased privileges that culminate in full commit access. We’re also aiming to move more sub-projects into their own repositories that can be released on their own release schedule and more easily maintained by the community. - - -## Other +### Other For more completed items, refer to the project history here: https://github.com/meteor/meteor/blob/devel/History.md diff --git a/appveyor.yml b/appveyor.yml index 28290ec4c6..7c1ca47fdd 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -43,5 +43,5 @@ on_failure: cache: - dev_bundle -> meteor - - .babel-cache + - .babel-cache -> meteor - .meteor diff --git a/meteor b/meteor index f903890e8a..19c08c64e6 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.15.1.1 +BUNDLE_VERSION=8.16.2.2 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. diff --git a/packages/accounts-base/accounts_client.js b/packages/accounts-base/accounts_client.js index 17c1e38a28..92ad0303dd 100644 --- a/packages/accounts-base/accounts_client.js +++ b/packages/accounts-base/accounts_client.js @@ -435,7 +435,22 @@ export class AccountsClient extends AccountsCommon { this._pageLoadLoginCallbacks.forEach(callback => callback(attemptInfo)); this._pageLoadLoginCallbacks = []; this._pageLoadLoginAttemptInfo = attemptInfo; - }; + } + + // _startupCallback executes on onLogin callbacks + // at registration time if already logged in + // this can happen when new AccountsClient is created + // before callbacks are registered see #10157 + _startupCallback(callback) { + // Are we already logged in? + if (this.connection._userId) { + // If already logged in before handler is registered, it's safe to + // assume type is a 'resume', so we execute the callback at the end + // of the queue so that Meteor.startup can complete before any + // embedded onLogin callbacks would execute. + Meteor.setTimeout(() => callback({ type: 'resume' }), 0); + } + } /// /// LOGIN TOKENS diff --git a/packages/accounts-base/accounts_common.js b/packages/accounts-base/accounts_common.js index d46e40f989..42bf754bb9 100644 --- a/packages/accounts-base/accounts_common.js +++ b/packages/accounts-base/accounts_common.js @@ -231,7 +231,10 @@ export class AccountsCommon { * as user details, connection information, etc. */ onLogin(func) { - return this._onLoginHook.register(func); + let ret = this._onLoginHook.register(func); + // call the just registered callback if already logged in + this._startupCallback(ret.callback); + return ret; } /** @@ -320,6 +323,9 @@ export class AccountsCommon { } return new Date() > (new Date(when) - minLifetimeMs); } + + // No-op on the server, overridden on the client. + _startupCallback(callback) {} } // Note that Accounts is defined separately in accounts_client.js and diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index 8d584cec7c..45facc7dd9 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -787,15 +787,10 @@ export class AccountsServer extends AccountsCommon { // {token, when} => {hashedToken, when} _hashStampedToken(stampedToken) { - const hashedStampedToken = Object.keys(stampedToken).reduce( - (prev, key) => key === 'token' ? - prev : - { ...prev, [key]: stampedToken[key] }, - {}, - ) + const { token, ...hashedStampedToken } = stampedToken; return { ...hashedStampedToken, - hashedToken: this._hashLoginToken(stampedToken.token) + hashedToken: this._hashLoginToken(token) }; }; diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 53566bf72f..57af7da5db 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: "1.4.4", + version: "1.4.5", }); Package.onUse(api => { diff --git a/packages/accounts-google/google.js b/packages/accounts-google/google.js index 7f2b0b0c51..4cb72d3b23 100644 --- a/packages/accounts-google/google.js +++ b/packages/accounts-google/google.js @@ -50,7 +50,7 @@ if (Meteor.isClient) { Google.whitelistedFields.filter( field => field !== 'email' && field !== 'verified_email' ).map( - subfield => `services.google${subfield}` + subfield => `services.google.${subfield}` ), }); } diff --git a/packages/accounts-google/package.js b/packages/accounts-google/package.js index 31a383a3cb..7ec6309d8c 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: "1.3.2", + version: "1.3.3", }); Package.onUse(api => { diff --git a/packages/accounts-password/.gitignore b/packages/accounts-password/.gitignore index 677a6fc263..3ccf4f8cd6 100644 --- a/packages/accounts-password/.gitignore +++ b/packages/accounts-password/.gitignore @@ -1 +1,2 @@ .build* +.versions diff --git a/packages/accounts-password/package.js b/packages/accounts-password/package.js index 5d614113d5..165a413547 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: "1.5.1" + version: "1.5.2" }); Package.onUse(api => { diff --git a/packages/appcache/.gitignore b/packages/appcache/.gitignore index 677a6fc263..3ccf4f8cd6 100644 --- a/packages/appcache/.gitignore +++ b/packages/appcache/.gitignore @@ -1 +1,2 @@ .build* +.versions diff --git a/packages/appcache/CHANGELOG.md b/packages/appcache/CHANGELOG.md new file mode 100644 index 0000000000..415992746a --- /dev/null +++ b/packages/appcache/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG + +## v1.2.3, 2019-12-13 + +* Rewrite appcache resources exceed recommended cache size debug message. Fixes [Issue #10321](https://github.com/meteor/meteor/issues/10321). Thanks [@CaptainN](https://github.com/CaptainN) diff --git a/packages/appcache/package.js b/packages/appcache/package.js index 00a62db723..ad4e9663c2 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: "1.2.2", + version: "1.2.3", }); Package.onUse(api => { diff --git a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json index a927664f22..1722c58c8b 100644 --- a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json @@ -2,96 +2,101 @@ "lockfileVersion": 1, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==" + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==" }, "@babel/core": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz", - "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", + "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", "dependencies": { "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==" } } }, "@babel/generator": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", - "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", + "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==" }, "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", + "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==" }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", + "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==" }, "@babel/helper-builder-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", - "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz", + "integrity": "sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA==" }, "@babel/helper-call-delegate": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", - "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", + "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==" }, "@babel/helper-create-class-features-plugin": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.4.tgz", - "integrity": "sha512-uFpzw6L2omjibjxa8VGZsJUPL5wJH0zzGKpoz0ccBkzIa6C8kWNUbiBmQ0rgOKWlHJ6qzmfa6lTiGchiV8SC+g==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz", + "integrity": "sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA==" + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", + "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==" }, "@babel/helper-define-map": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", - "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", + "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==" }, "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", + "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==" }, "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", + "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==" }, "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", + "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==" }, "@babel/helper-hoist-variables": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", - "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", + "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==" }, "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", + "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==" }, "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", + "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==" }, "@babel/helper-module-transforms": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", - "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz", + "integrity": "sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==" }, "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", + "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==" }, "@babel/helper-plugin-utils": { "version": "7.0.0", @@ -99,264 +104,294 @@ "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" }, "@babel/helper-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", - "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==" + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", + "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==" }, "@babel/helper-replace-supers": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz", - "integrity": "sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", + "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==" }, "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", + "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==" }, "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", + "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==" }, "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", + "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==" }, "@babel/helpers": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", - "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", + "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==" }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==" + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==" }, "@babel/parser": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", - "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", + "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", + "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==" }, "@babel/plugin-proposal-class-properties": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.4.tgz", - "integrity": "sha512-lUf8D3HLs4yYlAo8zjuneLvfxN7qfKv1Yzbj5vjqaqMJxgJA3Ipwp4VUJ+OrOdz53Wbww6ahwB8UhB2HQyLotA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz", + "integrity": "sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw==" + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.7.4.tgz", + "integrity": "sha512-TbYHmr1Gl1UC7Vo2HVuj/Naci5BEGNZ0AJhzqD2Vpr6QPFWpUmBRLrIDjedzx7/CShq0bRDS2gI4FIs77VHLVQ==" }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz", - "integrity": "sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", + "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==" + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", + "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==" + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.7.4.tgz", + "integrity": "sha512-JmgaS+ygAWDR/STPe3/7y0lNlHgS+19qZ9aC06nYLwQ/XB7c0q5Xs+ksFU3EDnp9EiEsO0dnRAOKeyLHTZuW3A==" }, "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", + "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==" + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.7.4.tgz", + "integrity": "sha512-JH3v5ZOeKT0qqdJ9BeBcZTFQiJOMax8RopSr1bH6ASkZKo2qWsvBML7W1mp89sszBRDBBRO8snqcByGdrMTdMg==" }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", + "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==" }, "@babel/plugin-syntax-flow": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz", - "integrity": "sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.7.4.tgz", + "integrity": "sha512-2AMAWl5PsmM5KPkB22cvOkUyWk6MjUaqhHNU5nSPUl/ns3j5qLfw2SuYP5RbVZ0tfLvePr4zUScbICtDP2CUNw==" }, "@babel/plugin-syntax-jsx": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", - "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", + "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==" + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.7.4.tgz", + "integrity": "sha512-XKh/yIRPiQTOeBg0QJjEus5qiSKucKAiApNtO1psqG7D17xmE+X2i5ZqBEuSvo0HRuyPaKaSN/Gy+Ha9KFQolw==" }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", + "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==" }, - "@babel/plugin-syntax-typescript": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz", - "integrity": "sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==" + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", + "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==" + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.7.4.tgz", + "integrity": "sha512-2MqYD5WjZSbJdUagnJvIdSfkb/ucOC9/1fRJxm7GAxY6YQLWlUvkfxoNbUPcPLHJyetKUDQ4+yyuUyAoc0HriA==" }, "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", + "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==" }, "@babel/plugin-transform-async-to-generator": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz", - "integrity": "sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", + "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==" }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", + "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==" }, "@babel/plugin-transform-block-scoping": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz", - "integrity": "sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", + "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==" }, "@babel/plugin-transform-classes": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz", - "integrity": "sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", + "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==" }, "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", + "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==" }, "@babel/plugin-transform-destructuring": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", - "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", + "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==" }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", + "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==" }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.3.4.tgz", - "integrity": "sha512-PmQC9R7DwpBFA+7ATKMyzViz3zCaMNouzZMPZN2K5PnbBbtL3AXFYTkDk+Hey5crQq2A90UG5Uthz0mel+XZrA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.7.4.tgz", + "integrity": "sha512-w9dRNlHY5ElNimyMYy0oQowvQpwt/PRHI0QS98ZJCTZU2bvSnKXo5zEiD5u76FBPigTm8TkqzmnUTg16T7qbkA==" }, "@babel/plugin-transform-for-of": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", - "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", + "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==" }, "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", + "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==" }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", - "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz", + "integrity": "sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==" }, "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", + "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==" }, "@babel/plugin-transform-parameters": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz", - "integrity": "sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", + "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==" }, "@babel/plugin-transform-property-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", - "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", + "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==" }, "@babel/plugin-transform-react-display-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", - "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz", + "integrity": "sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw==" }, "@babel/plugin-transform-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", - "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz", + "integrity": "sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw==" }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", - "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz", + "integrity": "sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A==" }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz", - "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz", + "integrity": "sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg==" }, "@babel/plugin-transform-regenerator": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz", - "integrity": "sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz", + "integrity": "sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==" }, "@babel/plugin-transform-runtime": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz", - "integrity": "sha512-PaoARuztAdd5MgeVjAxnIDAIUet5KpogqaefQvPOmPYCxYoaPhautxDh3aO8a4xHsKgT/b9gSxR0BKK1MIewPA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.4.tgz", + "integrity": "sha512-O8kSkS5fP74Ad/8pfsCMGa8sBRdLxYoSReaARRNSz3FbFQj3z/QUvoUmJ28gn9BO93YfnXc3j+Xyaqe8cKDNBQ==" }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", + "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==" }, "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", + "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==" }, "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", + "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==" }, "@babel/plugin-transform-template-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", - "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", + "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==" }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==" - }, - "@babel/plugin-transform-typescript": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.3.2.tgz", - "integrity": "sha512-Pvco0x0ZSCnexJnshMfaibQ5hnK8aUHSvjCQhC1JR8eeg+iBwt0AtCO7gWxJ358zZevuf9wPSO5rv+WJcbHPXQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", + "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==" }, "@babel/plugin-transform-unicode-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", - "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", + "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==" }, "@babel/preset-react": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", - "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.7.4.tgz", + "integrity": "sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g==" }, "@babel/runtime": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", - "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.4.tgz", + "integrity": "sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw==" }, "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", + "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==" }, "@babel/traverse": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", - "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", + "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==" }, "@babel/types": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", - "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==" }, "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==" + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" }, "ansi-styles": { "version": "3.2.1", @@ -398,6 +433,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz", "integrity": "sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==" }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==" + }, "babel-plugin-minify-builtins": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz", @@ -409,9 +449,9 @@ "integrity": "sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ==" }, "babel-plugin-minify-dead-code-elimination": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.0.tgz", - "integrity": "sha512-XQteBGXlgEoAKc/BhO6oafUdT4LBa7ARi55mxoyhLHNuA+RlzRmeMAfc31pb/UqU01wBzRc36YqHQzopnkd/6Q==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz", + "integrity": "sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg==" }, "babel-plugin-minify-flip-comparisons": { "version": "0.4.3", @@ -419,9 +459,9 @@ "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=" }, "babel-plugin-minify-guarded-expressions": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.3.tgz", - "integrity": "sha1-zHCbRFP9IbHzAod0RMifiEJ845c=" + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz", + "integrity": "sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA==" }, "babel-plugin-minify-infinity": { "version": "0.4.3", @@ -444,27 +484,15 @@ "integrity": "sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q==" }, "babel-plugin-minify-simplify": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.0.tgz", - "integrity": "sha512-TM01J/YcKZ8XIQd1Z3nF2AdWHoDsarjtZ5fWPDksYZNsoOjQ2UO2EWm824Ym6sp127m44gPlLFiO5KFxU8pA5Q==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz", + "integrity": "sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A==" }, "babel-plugin-minify-type-constructors": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz", "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=" }, - "babel-plugin-transform-es2015-modules-reify": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-reify/-/babel-plugin-transform-es2015-modules-reify-0.18.0.tgz", - "integrity": "sha512-bwbrF9cAsMvZamg+tkfN1fazGj5uiTxhaL5fRfR5xDp2JELgY8yrEhq42czar39EBvWscX0DA6dLSeCdY+4Xuw==", - "dependencies": { - "reify": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/reify/-/reify-0.18.1.tgz", - "integrity": "sha512-eNiNGxo5Cz/s/7DOeQW5+lTAxMexZPFA8XW/ef6f8WBLtQfYAhDNXxva7ROFC/Wa3q91usYzqJYwC85OXaWUzA==" - } - } - }, "babel-plugin-transform-inline-consecutive-adds": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", @@ -521,14 +549,14 @@ "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=" }, "babel-preset-meteor": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.3.4.tgz", - "integrity": "sha512-5S95oZLKn1RZexBCs3tPjjYXf2rJ8rBjkvJGkD9Bhut7XEGxDMMt1S+hhhGYo4ZwqOTmIeHv0EMppMWVxa7Lbg==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.7.4.tgz", + "integrity": "sha512-vYmGI6f1HtM+0dLrjq4cy+iStA1wIeFXJC9S0tSmA0ibnwOKe2WilKeGdMzbu+7v1TkM9/rVqrYQe5uIGmsqNA==" }, "babel-preset-minify": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.0.tgz", - "integrity": "sha512-xj1s9Mon+RFubH569vrGCayA9Fm2GMsCgDRm1Jb8SgctOB7KFcrVc2o8K3YHUyMz+SWP8aea75BoS8YfsXXuiA==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz", + "integrity": "sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg==" }, "chalk": { "version": "2.4.2", @@ -546,35 +574,50 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==" }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -586,29 +629,24 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==" }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + "magic-string": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz", + "integrity": "sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==" }, "meteor-babel": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.3.4.tgz", - "integrity": "sha512-5aVvIa9yGRq2WlkO8tThWhc3f07escWb0t93KRYM0EnsUbv2rDmrAir0P+e+4rpyDDz7utOpIfuO1dT1F8SCSA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.7.4.tgz", + "integrity": "sha512-PO2uQ6qlLpeKBMr7+s4cj92MsWDY0s5njUtgXEWvljVbtE6DSU8nc8B6E/tXVkmCOh5DSB1tk0BOwvd8Shr/yQ==" }, "meteor-babel-helpers": { "version": "0.0.3", @@ -621,9 +659,19 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==" }, "path-parse": { "version": "1.0.6", @@ -641,29 +689,29 @@ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" }, "regenerate-unicode-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", - "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==" + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==" }, "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" }, "regenerator-transform": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.4.tgz", - "integrity": "sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==" }, "regexpu-core": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", - "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==" }, "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" }, "regjsparser": { "version": "0.6.0", @@ -678,14 +726,14 @@ } }, "reify": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/reify/-/reify-0.17.3.tgz", - "integrity": "sha512-i0t837UYnWyJPCeesupZjmpThIppOPSs4I/uHmsWzQaiGQqtsYlbeJNN5i+61fe6UEA3Famc3IHnlm511poMnA==" + "version": "0.20.12", + "resolved": "https://registry.npmjs.org/reify/-/reify-0.20.12.tgz", + "integrity": "sha512-4BzKwDWyJJbukwI6xIJRh+BDTitoGzxdgYPiQQ1zbcTZW6I8xgHPw1DnVuEs/mEZQlYm1e09DcFSApb4UaR5bQ==" }, "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.0.tgz", + "integrity": "sha512-HHZ3hmOrk5SvybTb18xq4Ek2uLqLO5/goFCYUyvn26nWox4hdlKlfC/+dChIZ6qc4ZeYcN9ekTz0yyHsFgumMw==" }, "safe-buffer": { "version": "5.1.2", @@ -693,15 +741,20 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "sourcemap-codec": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", + "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -712,10 +765,10 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + "typescript": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", + "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==" }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", @@ -728,14 +781,14 @@ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==" }, "unicode-match-property-value-ecmascript": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", - "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==" }, "unicode-property-aliases-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", - "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==" } } } diff --git a/packages/babel-compiler/babel-compiler.js b/packages/babel-compiler/babel-compiler.js index 05e7a4a07f..b88abe5a30 100644 --- a/packages/babel-compiler/babel-compiler.js +++ b/packages/babel-compiler/babel-compiler.js @@ -67,12 +67,6 @@ BCp.processOneFileForTarget = function (inputFile, source) { sourceMap: null, bare: !! fileOptions.bare }; - var cacheOptions = { - cacheDirectory: this.cacheDirectory, - cacheDeps: { - sourceHash: toBeAdded.hash, - }, - }; // If you need to exclude a specific file within a package from Babel // compilation, pass the { transpile: false } options to api.addFiles @@ -85,25 +79,43 @@ BCp.processOneFileForTarget = function (inputFile, source) { // compilation, give it the following file extension: .es5.js ! excludedFileExtensionPattern.test(inputFilePath)) { - var extraFeatures = Object.assign({}, this.extraFeatures); - var arch = inputFile.getArch(); + const features = { ...this.extraFeatures }; + const arch = inputFile.getArch(); if (arch.startsWith("os.")) { // Start with a much simpler set of Babel presets and plugins if // we're compiling for Node 8. - extraFeatures.nodeMajorVersion = parseInt(process.versions.node, 10); + features.nodeMajorVersion = parseInt(process.versions.node, 10); } else if (arch === "web.browser") { - extraFeatures.modernBrowsers = true; + features.modernBrowsers = true; } - if (! extraFeatures.hasOwnProperty("jscript")) { + if (! features.hasOwnProperty("jscript")) { // Perform some additional transformations to improve compatibility // in older browsers (e.g. wrapping named function expressions, per // http://kiro.me/blog/nfe_dilemma.html). - extraFeatures.jscript = true; + features.jscript = true; } - var babelOptions = Babel.getDefaultOptions(extraFeatures); + if (shouldCompileModulesOnly(inputFilePath)) { + // Modules like @babel/runtime/helpers/esm/typeof.js need to be + // compiled to support ECMAScript modules syntax, but should *not* + // be compiled in any other way (for more explanation, see my longer + // comment in shouldCompileModulesOnly). + features.compileModulesOnly = true; + } + + const cacheOptions = { + cacheDirectory: this.cacheDirectory, + cacheDeps: { + sourceHash: toBeAdded.hash, + }, + }; + + this.inferTypeScriptConfig( + features, inputFile, cacheOptions.cacheDeps); + + var babelOptions = Babel.getDefaultOptions(features); babelOptions.caller = { name: "meteor", arch }; this.inferExtraBabelOptions( @@ -165,6 +177,32 @@ BCp.processOneFileForTarget = function (inputFile, source) { return toBeAdded; }; +function shouldCompileModulesOnly(path) { + const parts = path.split("/"); + const nmi = parts.lastIndexOf("node_modules"); + if (nmi >= 0) { + const part1 = parts[nmi + 1]; + // We trust that any code related to @babel/runtime has already been + // compiled adequately. The @babel/runtime/helpers/typeof module is a + // good example of why double-compilation is risky for these packages, + // since it uses native typeof syntax to implement its polyfill for + // Symbol-aware typeof, so compiling it again would cause the + // generated code to try to require itself. In general, compiling code + // more than once with Babel should be safe (just unnecessary), except + // for code that Babel itself relies upon at runtime. Finally, if this + // hard-coded list of package names proves to be incomplete, we can + // always add to it (or even replace it completely) by releasing a new + // version of the babel-compiler package. + if (part1 === "@babel" || + part1 === "core-js" || + part1 === "regenerator-runtime") { + return true; + } + } + + return false; +} + BCp.setDiskCacheDirectory = function (cacheDir) { this.cacheDirectory = cacheDir; }; @@ -177,6 +215,20 @@ function profile(name, func) { } }; +BCp.inferTypeScriptConfig = function (features, inputFile, cacheDeps) { + if (features.typescript && inputFile.findControlFile) { + const tsconfigPath = inputFile.findControlFile("tsconfig.json"); + if (tsconfigPath) { + if (typeof features.typescript !== "object") { + features.typescript = Object.create(null); + } + Object.assign(features.typescript, { tsconfigPath }); + return true; + } + } + return false; +}; + BCp.inferExtraBabelOptions = function (inputFile, babelOptions, cacheDeps) { if (! inputFile.require || ! inputFile.findControlFile || diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index 0fc349846d..9c45eef6a6 100644 --- a/packages/babel-compiler/package.js +++ b/packages/babel-compiler/package.js @@ -6,12 +6,12 @@ Package.describe({ // isn't possible because you can't publish a non-recommended // release with package versions that don't have a pre-release // identifier at the end (eg, -dev) - version: '7.3.4' + version: '7.4.1' }); Npm.depends({ - 'meteor-babel': '7.3.4', - 'json5': '2.1.0' + 'meteor-babel': '7.7.4', + 'json5': '2.1.1' }); Package.onUse(function (api) { diff --git a/packages/babel-runtime/.npm/package/npm-shrinkwrap.json b/packages/babel-runtime/.npm/package/npm-shrinkwrap.json deleted file mode 100644 index be3d02025a..0000000000 --- a/packages/babel-runtime/.npm/package/npm-shrinkwrap.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "lockfileVersion": 1, - "dependencies": { - "meteor-babel-helpers": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/meteor-babel-helpers/-/meteor-babel-helpers-0.0.3.tgz", - "integrity": "sha1-8uXZ+HlvvS6JAQI9dpnlsgLqn7A=" - } - } -} diff --git a/packages/babel-runtime/babel-runtime.js b/packages/babel-runtime/babel-runtime.js index 1df02e443d..00ebd17cd6 100644 --- a/packages/babel-runtime/babel-runtime.js +++ b/packages/babel-runtime/babel-runtime.js @@ -1,5 +1,3 @@ -exports.meteorBabelHelpers = require("meteor-babel-helpers"); - try { var babelRuntimeVersion = require("@babel/runtime/package.json").version; } catch (e) { diff --git a/packages/babel-runtime/package.js b/packages/babel-runtime/package.js index 3771b5697c..be812b2034 100644 --- a/packages/babel-runtime/package.js +++ b/packages/babel-runtime/package.js @@ -1,16 +1,11 @@ Package.describe({ name: "babel-runtime", summary: "Runtime support for output of Babel transpiler", - version: '1.3.0', + version: '1.4.0', documentation: 'README.md' }); -Npm.depends({ - "meteor-babel-helpers": "0.0.3" -}); - Package.onUse(function (api) { api.use("modules"); api.mainModule("babel-runtime.js"); - api.export("meteorBabelHelpers"); }); diff --git a/packages/base64/base64.js b/packages/base64/base64.js index 2e938371d8..de33c8566a 100644 --- a/packages/base64/base64.js +++ b/packages/base64/base64.js @@ -32,19 +32,19 @@ const encode = array => { let c = null; let d = null; - array.forEach((elm, i) => { + for (let i = 0; i < array.length; i++) { switch (i % 3) { case 0: - a = (elm >> 2) & 0x3F; - b = (elm & 0x03) << 4; + a = (array[i] >> 2) & 0x3F; + b = (array[i] & 0x03) << 4; break; case 1: - b = b | (elm >> 4) & 0xF; - c = (elm & 0xF) << 2; + b = b | (array[i] >> 4) & 0xF; + c = (array[i] & 0xF) << 2; break; case 2: - c = c | (elm >> 6) & 0x03; - d = elm & 0x3F; + c = c | (array[i] >> 6) & 0x03; + d = array[i] & 0x3F; answer.push(getChar(a)); answer.push(getChar(b)); answer.push(getChar(c)); @@ -55,7 +55,7 @@ const encode = array => { d = null; break; } - }); + } if (a != null) { answer.push(getChar(a)); @@ -65,7 +65,7 @@ const encode = array => { } else { answer.push(getChar(c)); } - + if (d == null) { answer.push('='); } @@ -102,7 +102,7 @@ const decode = str => { len--; } } - + const arr = newBinary(len); let one = null; @@ -147,7 +147,7 @@ const decode = str => { break; } } - + return arr; }; diff --git a/packages/base64/package.js b/packages/base64/package.js index 710e5f873e..547992b2a4 100644 --- a/packages/base64/package.js +++ b/packages/base64/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Base64 encoding and decoding", - version: '1.0.11', + version: '1.0.12', }); Package.onUse(api => { diff --git a/packages/callback-hook/hook.js b/packages/callback-hook/hook.js index d44ebd54df..eb1a7a7bff 100644 --- a/packages/callback-hook/hook.js +++ b/packages/callback-hook/hook.js @@ -77,6 +77,7 @@ export class Hook { this.callbacks[id] = callback; return { + callback, stop: () => { delete this.callbacks[id]; } diff --git a/packages/callback-hook/package.js b/packages/callback-hook/package.js index 4e6711df0f..57d482db1e 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: '1.1.0' + version: '1.2.0' }); Package.onUse(function (api) { diff --git a/packages/check/match_test.js b/packages/check/match_test.js index 33f2a72440..59c20fb69c 100644 --- a/packages/check/match_test.js +++ b/packages/check/match_test.js @@ -446,7 +446,7 @@ Meteor.isServer && Tinytest.addAsync('check - non-fiber check works', (test, onC // Get out of a fiber with process.nextTick and ensure that we can still use // check. process.nextTick(() => { - const success = true; + let success = true; if (Fiber.current) { success = false; } diff --git a/packages/babel-runtime/.npm/package/.gitignore b/packages/context/.npm/package/.gitignore similarity index 100% rename from packages/babel-runtime/.npm/package/.gitignore rename to packages/context/.npm/package/.gitignore diff --git a/packages/babel-runtime/.npm/package/README b/packages/context/.npm/package/README similarity index 100% rename from packages/babel-runtime/.npm/package/README rename to packages/context/.npm/package/README diff --git a/packages/context/.npm/package/npm-shrinkwrap.json b/packages/context/.npm/package/npm-shrinkwrap.json new file mode 100644 index 0000000000..daca025675 --- /dev/null +++ b/packages/context/.npm/package/npm-shrinkwrap.json @@ -0,0 +1,20 @@ +{ + "lockfileVersion": 1, + "dependencies": { + "@types/node": { + "version": "12.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz", + "integrity": "sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ==" + }, + "@wry/context": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz", + "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==" + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + } + } +} diff --git a/packages/context/README.md b/packages/context/README.md new file mode 100644 index 0000000000..444c17c212 --- /dev/null +++ b/packages/context/README.md @@ -0,0 +1,7 @@ +# context +[Source code of released version](https://github.com/meteor/meteor/tree/master/packages/context) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/context) +*** + +Meteor wrapper package for the +[`@wry/context`](https://github.com/benjamn/wryware/tree/master/packages/context) +npm package. diff --git a/packages/context/context-tests.js b/packages/context/context-tests.js new file mode 100644 index 0000000000..ee3f45c623 --- /dev/null +++ b/packages/context/context-tests.js @@ -0,0 +1,12 @@ +import { Tinytest } from "meteor/tinytest"; +import { Slot } from "meteor/context"; + +Tinytest.add('context - basic Slot usage', function (test) { + const slot = new Slot(); + test.equal(slot.hasValue(), false); + slot.withValue(123, () => { + test.equal(slot.hasValue(), true); + test.equal(slot.getValue(), 123); + }); + test.equal(slot.hasValue(), false); +}); diff --git a/packages/context/context.js b/packages/context/context.js new file mode 100644 index 0000000000..720e3c8086 --- /dev/null +++ b/packages/context/context.js @@ -0,0 +1,15 @@ +const { + Slot, + bind, + noContext, + setTimeout, + asyncFromGen, +} = require("@wry/context"); + +Object.assign(exports, { + Slot, + bind, + noContext, + setTimeout, + asyncFromGen, +}); diff --git a/packages/context/package.js b/packages/context/package.js new file mode 100644 index 0000000000..823bd481cf --- /dev/null +++ b/packages/context/package.js @@ -0,0 +1,23 @@ +Package.describe({ + name: "context", + version: "0.4.0", + summary: "Manage contextual information without passing objects around", + documentation: "README.md" +}); + +Npm.depends({ + "@wry/context": "0.4.4" +}); + +Package.onUse(function(api) { + api.use("modules"); + api.addFiles("server.js", "server"); + api.mainModule("context.js"); +}); + +Package.onTest(function(api) { + api.use("ecmascript"); + api.use("tinytest"); + api.use("context"); + api.mainModule("context-tests.js"); +}); diff --git a/packages/context/server.js b/packages/context/server.js new file mode 100644 index 0000000000..b9a5d3efbe --- /dev/null +++ b/packages/context/server.js @@ -0,0 +1,2 @@ +const { wrapYieldingFiberMethods } = require("@wry/context"); +wrapYieldingFiberMethods(require("fibers")); diff --git a/packages/ddp-server/livedata_server.js b/packages/ddp-server/livedata_server.js index 3b94a3e8e9..7de0f1517d 100644 --- a/packages/ddp-server/livedata_server.js +++ b/packages/ddp-server/livedata_server.js @@ -1738,7 +1738,7 @@ var wrapInternalException = function (exception, context) { // Tests can set the '_expectedByTest' flag on an exception so it won't go to // the server log. if (!exception._expectedByTest) { - Meteor._debug("Exception " + context, exception); + Meteor._debug("Exception " + context, exception.stack); if (exception.sanitizedError) { Meteor._debug("Sanitized and reported to the client as:", exception.sanitizedError); Meteor._debug(); diff --git a/packages/deprecated/README b/packages/deprecated/README index 92ec8f49b9..64548dcb18 100644 --- a/packages/deprecated/README +++ b/packages/deprecated/README @@ -1,4 +1,4 @@ -These packages are no longer actively maintained by MDG. Seek +These packages are no longer actively maintained by Meteor Software. Seek community alternatives instead. Note that these packages still exist in atmosphere, and you can still diff --git a/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json b/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json index beaf178041..c5366d30b1 100644 --- a/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json +++ b/packages/ecmascript-runtime-client/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", + "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==" } } } diff --git a/packages/ecmascript-runtime-client/legacy.js b/packages/ecmascript-runtime-client/legacy.js index 51eded6eeb..20a6d8fb3a 100644 --- a/packages/ecmascript-runtime-client/legacy.js +++ b/packages/ecmascript-runtime-client/legacy.js @@ -1,16 +1,7 @@ try { - require("core-js/modules/es6.symbol"); - require("core-js/modules/es6.map"); - require("core-js/modules/es6.set"); - - var core = function () { - try { - return require("core-js/modules/_core"); - } catch (e) { - // Older versions of core-js had a different file layout. - return require("core-js/modules/$.core"); - } - }(); + Symbol = exports.Symbol = require("core-js/es/symbol"); + Map = exports.Map = require("core-js/es/map"); + Set = exports.Set = require("core-js/es/set"); } catch (e) { throw new Error([ @@ -22,19 +13,15 @@ try { ].join("\n")); } -Symbol = exports.Symbol = core.Symbol; -Map = exports.Map = core.Map; -Set = exports.Set = core.Set; - // ECMAScript 2015 polyfills. -require("core-js/es6/array"); -require("core-js/es6/function"); -require("core-js/es6/math"); -require("core-js/es6/object"); -require("core-js/es6/regexp"); -require("core-js/es6/string"); -require("core-js/es6/weak-map"); -require("core-js/es6/weak-set"); +require("core-js/es/array"); +require("core-js/es/function"); +require("core-js/es/math"); +require("core-js/es/object"); +require("core-js/es/regexp"); +require("core-js/es/string"); +require("core-js/es/weak-map"); +require("core-js/es/weak-set"); // If the Reflect global namespace is missing or undefined, explicitly // initialize it as undefined, so that expressions like _typeof(Reflect) @@ -43,26 +30,20 @@ if (typeof Reflect === "undefined") { global.Reflect = void 0; } -// ECMAScript 2017 polyfills. -require("core-js/es7/array"); -require("core-js/es7/object"); -require("core-js/modules/es7.string.pad-start"); -require("core-js/modules/es7.string.pad-end"); - -// We want everything from the core-js/es6/number module except -// es6.number.constructor. -require('core-js/modules/es6.number.epsilon'); -require('core-js/modules/es6.number.is-finite'); -require('core-js/modules/es6.number.is-integer'); -require('core-js/modules/es6.number.is-nan'); -require('core-js/modules/es6.number.is-safe-integer'); -require('core-js/modules/es6.number.max-safe-integer'); -require('core-js/modules/es6.number.min-safe-integer'); -require('core-js/modules/es6.number.parse-float'); -require('core-js/modules/es6.number.parse-int'); +// We want everything from the core-js/es/number module except +// es.number.constructor. +require('core-js/modules/es.number.epsilon'); +require('core-js/modules/es.number.is-finite'); +require('core-js/modules/es.number.is-integer'); +require('core-js/modules/es.number.is-nan'); +require('core-js/modules/es.number.is-safe-integer'); +require('core-js/modules/es.number.max-safe-integer'); +require('core-js/modules/es.number.min-safe-integer'); +require('core-js/modules/es.number.parse-float'); +require('core-js/modules/es.number.parse-int'); // Typed Arrays -require('core-js/modules/es6.typed.uint8-array'); -require('core-js/modules/es6.typed.uint32-array'); +require('core-js/modules/es.typed-array.uint8-array'); +require('core-js/modules/es.typed-array.uint32-array'); require("./modern.js"); diff --git a/packages/ecmascript-runtime-client/modern.js b/packages/ecmascript-runtime-client/modern.js index bab39848af..6b429bdb14 100644 --- a/packages/ecmascript-runtime-client/modern.js +++ b/packages/ecmascript-runtime-client/modern.js @@ -1,5 +1,5 @@ try { - require("core-js/modules/es7.object.get-own-property-descriptors"); + require("core-js/modules/es.object.get-own-property-descriptors"); } catch (e) { throw new Error([ "The core-js npm package could not be found in your node_modules ", @@ -10,13 +10,14 @@ try { ].join("\n")); } -require("core-js/modules/es6.object.is"); -require("core-js/modules/es6.function.name"); -require("core-js/modules/es6.number.is-finite"); -require("core-js/modules/es6.number.is-nan"); -require("core-js/modules/es7.array.flatten"); -require("core-js/modules/es7.array.flat-map"); -require("core-js/modules/es7.object.values"); -require("core-js/modules/es7.object.entries"); -require("core-js/modules/es7.string.pad-start"); -require("core-js/modules/es7.string.pad-end"); +require("core-js/modules/es.object.is"); +require("core-js/modules/es.function.name"); +require("core-js/modules/es.number.is-finite"); +require("core-js/modules/es.number.is-nan"); +require("core-js/modules/es.array.flat"); +require("core-js/modules/es.array.flat-map"); +require("core-js/modules/es.object.values"); +require("core-js/modules/es.object.entries"); +require("core-js/modules/es.string.pad-start"); +require("core-js/modules/es.string.pad-end"); +require("core-js/modules/es.symbol.async-iterator"); diff --git a/packages/ecmascript-runtime-client/package.js b/packages/ecmascript-runtime-client/package.js index 380772d47a..69123ed83c 100644 --- a/packages/ecmascript-runtime-client/package.js +++ b/packages/ecmascript-runtime-client/package.js @@ -1,13 +1,13 @@ Package.describe({ name: "ecmascript-runtime-client", - version: "0.8.0", + version: "0.9.0", 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" }); Npm.depends({ - "core-js": "2.5.7" + "core-js": "3.2.1" }); Package.onUse(function(api) { diff --git a/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json b/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json index beaf178041..c5366d30b1 100644 --- a/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json +++ b/packages/ecmascript-runtime-server/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", + "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==" } } } diff --git a/packages/ecmascript-runtime-server/package.js b/packages/ecmascript-runtime-server/package.js index e74d53dcd2..66b54bcb75 100644 --- a/packages/ecmascript-runtime-server/package.js +++ b/packages/ecmascript-runtime-server/package.js @@ -1,13 +1,13 @@ Package.describe({ name: "ecmascript-runtime-server", - version: "0.7.1", + version: "0.8.0", 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" }); Npm.depends({ - "core-js": "2.5.7" + "core-js": "3.2.1" }); Package.onUse(function(api) { diff --git a/packages/ecmascript-runtime-server/runtime.js b/packages/ecmascript-runtime-server/runtime.js index 692255ae78..323621e86c 100644 --- a/packages/ecmascript-runtime-server/runtime.js +++ b/packages/ecmascript-runtime-server/runtime.js @@ -21,5 +21,6 @@ // Note that the es6.reflect.* and es6.typed.* modules have been commented // out for bundle size reasons. -require("core-js/modules/es7.string.pad-start"); -require("core-js/modules/es7.string.pad-end"); +require("core-js/modules/es.string.pad-start"); +require("core-js/modules/es.string.pad-end"); +require("core-js/modules/es.symbol.async-iterator"); diff --git a/packages/ecmascript-runtime/package.js b/packages/ecmascript-runtime/package.js index 6f2e54e0f0..fd4a38be77 100644 --- a/packages/ecmascript-runtime/package.js +++ b/packages/ecmascript-runtime/package.js @@ -14,7 +14,7 @@ Package.onUse(function(api) { Package.onTest(function(api) { api.use("tinytest"); api.use("check"); + api.use("ecmascript"); api.use("es5-shim"); - api.use("ecmascript-runtime"); api.addFiles("runtime-tests.js"); }); diff --git a/packages/ecmascript-runtime/runtime-tests.js b/packages/ecmascript-runtime/runtime-tests.js index e08dd129e6..5e4c09785b 100644 --- a/packages/ecmascript-runtime/runtime-tests.js +++ b/packages/ecmascript-runtime/runtime-tests.js @@ -124,3 +124,30 @@ Tinytest.add("core-js - Function", function (test) { test.equal(Constructor[Symbol.hasInstance](new Constructor), true); test.equal(Constructor[Symbol.hasInstance]({}), false); }); + +Tinytest.addAsync("async iterators", async test => { + class Range { + constructor(limit) { + this.limit = limit; + } + + [Symbol.asyncIterator]() { + const promises = []; + for (let value = 1; value <= this.limit; ++value) { + promises.push(Promise.resolve({ value, done: false })); + } + + return { + next() { + return promises.shift() || Promise.resolve({ done: true }); + } + }; + } + } + + let sum = 0; + for await (const n of new Range(10)) { + sum += n; + } + test.equal(sum, (10 * 11) / 2); +}); diff --git a/packages/ecmascript/ecmascript.js b/packages/ecmascript/ecmascript.js index 10d7a6b6f0..d562fc0df1 100644 --- a/packages/ecmascript/ecmascript.js +++ b/packages/ecmascript/ecmascript.js @@ -1,7 +1,8 @@ ECMAScript = { compileForShell(command, cacheOptions) { const babelOptions = Babel.getDefaultOptions({ - nodeMajorVersion: parseInt(process.versions.node, 10) + nodeMajorVersion: parseInt(process.versions.node, 10), + compileForShell: true }); delete babelOptions.sourceMap; delete babelOptions.sourceMaps; diff --git a/packages/ecmascript/package.js b/packages/ecmascript/package.js index c64429cb37..cf40943533 100644 --- a/packages/ecmascript/package.js +++ b/packages/ecmascript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ecmascript', - version: '0.12.7', + version: '0.13.1', summary: 'Compiler plugin that supports ES2015+ in all .js files', documentation: 'README.md' }); diff --git a/packages/ecmascript/plugin.js b/packages/ecmascript/plugin.js index a12bf3e164..7f6fce671a 100644 --- a/packages/ecmascript/plugin.js +++ b/packages/ecmascript/plugin.js @@ -1,5 +1,5 @@ Plugin.registerCompiler({ - extensions: ['js', 'jsx'], + extensions: ['js', 'jsx', 'mjs'], }, function () { return new BabelCompiler({ react: true diff --git a/packages/ecmascript/runtime-tests.js b/packages/ecmascript/runtime-tests.js index 4ff00aa91e..bea03b6ab6 100644 --- a/packages/ecmascript/runtime-tests.js +++ b/packages/ecmascript/runtime-tests.js @@ -322,8 +322,10 @@ Tinytest.add("ecmascript - runtime - destructuring", (test) => { Tinytest.addAsync("ecmascript - runtime - misc support", (test, done) => { // Verify that the runtime was installed. - test.equal(typeof meteorBabelHelpers, "object"); - test.equal(typeof meteorBabelHelpers.sanitizeForInObject, "function"); + if (Meteor.isLegacy) { + test.equal(typeof meteorBabelHelpers, "object"); + test.equal(typeof meteorBabelHelpers.sanitizeForInObject, "function"); + } class Base { constructor(...args) { diff --git a/packages/ecmascript/transpilation-tests.js b/packages/ecmascript/transpilation-tests.js index a56ecaae07..f961e7c335 100644 --- a/packages/ecmascript/transpilation-tests.js +++ b/packages/ecmascript/transpilation-tests.js @@ -78,11 +78,13 @@ Tinytest.add("ecmascript - transpilation - helpers - bind", (test) => { }); Tinytest.add("ecmascript - transpilation - helpers - extends", (test) => { - const output = transform(` - var full = {a:1, ...middle, d:4}; -`); + const output = transform("class A extends getBaseClass() {}"); + test.isTrue(/helpers\/inheritsLoose/.test(output)); +}); - test.isTrue(/helpers\/(builtin\/)?(extends|objectSpread)/.test(output)); +Tinytest.add("ecmascript - transpilation - helpers - objectSpread", (test) => { + const output = transform("var full = {a:1, ...middle, d:4};"); + test.isTrue(/objectSpread/.test(output)); }); Tinytest.add("ecmascript - transpilation - helpers - objectWithoutProperties", (test) => { diff --git a/packages/http/httpcall_tests.js b/packages/http/httpcall_tests.js index 48cd523b5b..ae128b471f 100644 --- a/packages/http/httpcall_tests.js +++ b/packages/http/httpcall_tests.js @@ -259,16 +259,6 @@ testAsyncMulti("httpcall - methods", [ test.equal(result.statusCode, 200); var data = result.data; test.equal(data.url, "/foo"); - - // IE <= 8 turns seems to turn POSTs with no body into - // GETs, inexplicably. - // - // XXX Except now it doesn't!? Not sure what changed, but - // these lines now break the test... - // if (Meteor.isClient && $.browser.msie && $.browser.version <= 8 - // && meth === "POST") - // meth = "GET"; - test.equal(data.method, meth); })); }; diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 7ae9f7b667..89b5ab8b5a 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: '1.8.1' + version: '1.8.2' }); Package.includeTool(); diff --git a/packages/minifier-css/.npm/package/npm-shrinkwrap.json b/packages/minifier-css/.npm/package/npm-shrinkwrap.json index 5d03701221..53b50ac44e 100644 --- a/packages/minifier-css/.npm/package/npm-shrinkwrap.json +++ b/packages/minifier-css/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "@types/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.1.tgz", - "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" }, "alphanum-sort": { "version": "1.0.2", @@ -27,9 +27,9 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "browserslist": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.2.tgz", - "integrity": "sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg==" + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==" }, "caller-callsite": { "version": "2.0.0", @@ -52,9 +52,9 @@ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==" }, "caniuse-lite": { - "version": "1.0.30000939", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000939.tgz", - "integrity": "sha512-oXB23ImDJOgQpGjRv1tCtzAvJr4/OvrHi5SO2vUgB0g0xpdZZoA/BxfImiWfdwoYdUTtQrPsXsvYU/dmCSM8gg==" + "version": "1.0.30000989", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==" }, "chalk": { "version": "2.4.2", @@ -74,9 +74,9 @@ "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==" }, "color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.0.tgz", - "integrity": "sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==" }, "color-convert": { "version": "1.9.3", @@ -94,9 +94,9 @@ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==" }, "cosmiconfig": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz", - "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==" }, "css-color-names": { "version": "0.0.4", @@ -119,9 +119,9 @@ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, "css-tree": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", - "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", + "version": "1.0.0-alpha.33", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz", + "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==", "dependencies": { "source-map": { "version": "0.5.7", @@ -135,11 +135,6 @@ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" }, - "css-url-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", - "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=" - }, "css-what": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", @@ -151,9 +146,9 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" }, "cssnano": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.9.tgz", - "integrity": "sha512-osEbYy4kzaNY3nkd92Uf3hy5Jqb5Aztuv+Ze3Z6DjRhyntZDlb3YljiYDdJ05k167U86CZpSR+rbuJYN7N3oBQ==" + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==" }, "cssnano-preset-default": { "version": "4.0.7", @@ -190,6 +185,11 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==" }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==" + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -203,9 +203,16 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" }, "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", + "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==", + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + } + } }, "domelementtype": { "version": "1.3.1", @@ -223,14 +230,14 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==" }, "electron-to-chromium": { - "version": "1.3.113", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", - "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==" + "version": "1.3.252", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.252.tgz", + "integrity": "sha512-NWJ5TztDnjExFISZHFwpoJjMbLUifsNBnx7u2JI0gCw6SbKyQYYWWtBHasO/jPtHym69F4EZuTpRNGN11MT/jg==" }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" }, "error-ex": { "version": "1.3.2", @@ -238,9 +245,9 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" }, "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.1.tgz", + "integrity": "sha512-cp/Tb1oA/rh2X7vqeSOvM+TSo3UkJLX70eNihgVEvnzwAgikjkTFr/QVgRCaxjm0knCNQzNoxxxcw2zO2LJdZA==" }, "es-to-primitive": { "version": "1.2.0", @@ -363,20 +370,15 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==" }, "js-yaml": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.2.tgz", - "integrity": "sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q==" + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -388,9 +390,9 @@ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", - "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, "minimist": { "version": "0.0.8", @@ -403,9 +405,9 @@ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" }, "node-releases": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.8.tgz", - "integrity": "sha512-gQm+K9mGCiT/NXHy+V/ZZS1N/LOaGGqRAAJJs3X9Ah1g+CIbRcBgNyoNYQ+SEtcyAtB9KqDruu+fF7nWjsqRaA==" + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.29.tgz", + "integrity": "sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ==" }, "normalize-url": { "version": "3.3.0", @@ -417,10 +419,15 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==" }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + }, "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.getownpropertydescriptors": { "version": "2.0.3", @@ -438,9 +445,9 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" }, "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==" + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", + "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==" }, "postcss-calc": { "version": "7.0.1", @@ -627,9 +634,9 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "simple-swizzle": { "version": "0.2.2", @@ -658,6 +665,16 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, + "string.prototype.trimleft": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz", + "integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=" + }, + "string.prototype.trimright": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz", + "integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=" + }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -676,9 +693,9 @@ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" }, "svgo": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.2.0.tgz", - "integrity": "sha512-xBfxJxfk4UeVN8asec9jNxHiv3UAMv/ujwBWGYvQhhMb2u3YTGKkiybPcLFDLq7GLLWE9wa73e0/m8L5nTzQbw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz", + "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==" }, "timsort": { "version": "0.3.0", @@ -706,9 +723,9 @@ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==" }, "vendors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", + "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==" } } } diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 1bfcbb840a..0542dc191d 100644 --- a/packages/minifier-css/package.js +++ b/packages/minifier-css/package.js @@ -1,11 +1,11 @@ Package.describe({ summary: 'CSS minifier', - version: '1.4.2' + version: '1.4.3' }); Npm.depends({ - postcss: '7.0.14', - cssnano: '4.1.9' + postcss: '7.0.18', + cssnano: '4.1.10' }); Package.onUse(function (api) { diff --git a/packages/minifier-js/.npm/package/npm-shrinkwrap.json b/packages/minifier-js/.npm/package/npm-shrinkwrap.json index eec2ad9379..fae47c7a37 100644 --- a/packages/minifier-js/.npm/package/npm-shrinkwrap.json +++ b/packages/minifier-js/.npm/package/npm-shrinkwrap.json @@ -7,9 +7,9 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "source-map": { "version": "0.6.1", @@ -17,14 +17,14 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", - "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==" + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==" }, "terser": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", - "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==" + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.0.tgz", + "integrity": "sha512-oDG16n2WKm27JO8h4y/w3iqBGAOSCtq7k8dRmrn4Wf9NouL0b2WpMHGChFGZq4nFAQy1FsNJrVQHfurXOSTmOA==" } } } diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index e6c8fab292..6c2a7fc48a 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -1,10 +1,10 @@ Package.describe({ summary: "JavaScript minifier", - version: "2.4.1" + version: "2.5.1" }); Npm.depends({ - terser: "3.16.1" + terser: "4.4.0" }); Package.onUse(function (api) { diff --git a/packages/modules-runtime/.npm/package/npm-shrinkwrap.json b/packages/modules-runtime/.npm/package/npm-shrinkwrap.json index bbc79174ba..db009853c3 100644 --- a/packages/modules-runtime/.npm/package/npm-shrinkwrap.json +++ b/packages/modules-runtime/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "install": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/install/-/install-0.12.2.tgz", - "integrity": "sha512-+7thTb4Rpvs9mnlhHKGZFJbGOO6kyMgy+gg0sgM5vFzIFK0wrCYXqdlaM71Bi289DTuPHf61puMFsaZBcwDIrg==" + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", + "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==" } } } diff --git a/packages/modules-runtime/legacy.js b/packages/modules-runtime/legacy.js new file mode 100644 index 0000000000..b76f1d36b3 --- /dev/null +++ b/packages/modules-runtime/legacy.js @@ -0,0 +1,21 @@ +meteorInstall = makeInstaller({ + // On the client, make package resolution prefer the "browser" field of + // package.json over the "module" field over the "main" field. + browser: true, + + // The difference between legacy.js and modern.js is that this module + // prefers "main" over "module" (see issue #10658). + mainFields: ["browser", "main", "module"], + + fallback: function(id, parentId, error) { + if (id && id.startsWith('meteor/')) { + var packageName = id.split('/', 2)[1]; + throw new Error( + 'Cannot find package "' + packageName + '". ' + + 'Try "meteor add ' + packageName + '".' + ); + } + + throw error; + } +}); diff --git a/packages/modules-runtime/client.js b/packages/modules-runtime/modern.js similarity index 79% rename from packages/modules-runtime/client.js rename to packages/modules-runtime/modern.js index e5b77fff50..c26a129da0 100644 --- a/packages/modules-runtime/client.js +++ b/packages/modules-runtime/modern.js @@ -1,7 +1,8 @@ meteorInstall = makeInstaller({ // On the client, make package resolution prefer the "browser" field of - // package.json files to the "main" field. + // package.json over the "module" field over the "main" field. browser: true, + mainFields: ["browser", "module", "main"], fallback: function(id, parentId, error) { if (id && id.startsWith('meteor/')) { diff --git a/packages/modules-runtime/package.js b/packages/modules-runtime/package.js index 519249240a..2adb83a12c 100644 --- a/packages/modules-runtime/package.js +++ b/packages/modules-runtime/package.js @@ -1,13 +1,13 @@ Package.describe({ name: "modules-runtime", - version: "0.10.3", + version: "0.11.0", summary: "CommonJS module system", git: "https://github.com/benjamn/install", documentation: "README.md" }); Npm.depends({ - install: "0.12.2" + install: "0.13.0" }); Package.onUse(function(api) { @@ -18,7 +18,8 @@ Package.onUse(function(api) { bare: true }); - api.addFiles("client.js", "client"); + api.addFiles("modern.js", "modern"); + api.addFiles("legacy.js", "legacy"); api.addFiles("server.js", "server"); api.addFiles("profile.js"); diff --git a/packages/modules/.npm/package/npm-shrinkwrap.json b/packages/modules/.npm/package/npm-shrinkwrap.json index f5dfbc8ff2..2a2dad5abb 100644 --- a/packages/modules/.npm/package/npm-shrinkwrap.json +++ b/packages/modules/.npm/package/npm-shrinkwrap.json @@ -2,19 +2,39 @@ "lockfileVersion": 1, "dependencies": { "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", + "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==" + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" + }, + "magic-string": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz", + "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==" + }, + "meteor-babel-helpers": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/meteor-babel-helpers/-/meteor-babel-helpers-0.0.3.tgz", + "integrity": "sha1-8uXZ+HlvvS6JAQI9dpnlsgLqn7A=" }, "reify": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/reify/-/reify-0.17.3.tgz", - "integrity": "sha512-i0t837UYnWyJPCeesupZjmpThIppOPSs4I/uHmsWzQaiGQqtsYlbeJNN5i+61fe6UEA3Famc3IHnlm511poMnA==" + "version": "0.20.12", + "resolved": "https://registry.npmjs.org/reify/-/reify-0.20.12.tgz", + "integrity": "sha512-4BzKwDWyJJbukwI6xIJRh+BDTitoGzxdgYPiQQ1zbcTZW6I8xgHPw1DnVuEs/mEZQlYm1e09DcFSApb4UaR5bQ==" }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + }, + "sourcemap-codec": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", + "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==" } } } diff --git a/packages/modules/legacy.js b/packages/modules/legacy.js new file mode 100644 index 0000000000..53db73cbd2 --- /dev/null +++ b/packages/modules/legacy.js @@ -0,0 +1,4 @@ +// The meteor-babel/plugins/sanitize-for-in-objects plugin generates code +// that uses meteorBabelHelpers.sanitizeForInObject, but only when +// compiling code for the web.browser.legacy bundle. See #10595. +meteorBabelHelpers = require("meteor-babel-helpers"); diff --git a/packages/modules/package.js b/packages/modules/package.js index e60ea87c48..792a3e260e 100644 --- a/packages/modules/package.js +++ b/packages/modules/package.js @@ -1,12 +1,13 @@ Package.describe({ name: "modules", - version: "0.13.0", + version: "0.14.0", summary: "CommonJS module system", documentation: "README.md" }); Npm.depends({ - reify: "0.17.3" + reify: "0.20.12", + "meteor-babel-helpers": "0.0.3" }); Package.onUse(function(api) { @@ -14,4 +15,12 @@ Package.onUse(function(api) { api.mainModule("client.js", "client"); api.mainModule("server.js", "server"); api.export("meteorInstall"); + + // When compiling legacy code, the babel-compiler and meteor-babel + // packages assume meteorBabelHelpers.sanitizeForInObject is defined. + // Since the modules package is responsible for code from node_modules, + // it must also be responsible for exposing this runtime helper, but + // only in the legacy bundle. + api.addFiles("legacy.js", "legacy"); + api.export("meteorBabelHelpers", "legacy"); }); diff --git a/packages/mongo/doc_fetcher.js b/packages/mongo/doc_fetcher.js index fbc73bd3f5..2b3412d39c 100644 --- a/packages/mongo/doc_fetcher.js +++ b/packages/mongo/doc_fetcher.js @@ -1,38 +1,36 @@ var Fiber = Npm.require('fibers'); -var Future = Npm.require('fibers/future'); -DocFetcher = function (mongoConnection) { - var self = this; - self._mongoConnection = mongoConnection; - // Map from cache key -> [callback] - self._callbacksForCacheKey = {}; -}; +export class DocFetcher { + constructor(mongoConnection) { + this._mongoConnection = mongoConnection; + // Map from op -> [callback] + this._callbacksForOp = new Map; + } -_.extend(DocFetcher.prototype, { // Fetches document "id" from collectionName, returning it or null if not // found. // - // If you make multiple calls to fetch() with the same cacheKey (a string), + // If you make multiple calls to fetch() with the same op reference, // DocFetcher may assume that they all return the same document. (It does // not check to see if collectionName/id match.) // // You may assume that callback is never called synchronously (and in fact // OplogObserveDriver does so). - fetch: function (collectionName, id, cacheKey, callback) { - var self = this; + fetch(collectionName, id, op, callback) { + const self = this; check(collectionName, String); - // id is some sort of scalar - check(cacheKey, String); + check(op, Object); // If there's already an in-progress fetch for this cache key, yield until // it's done and return whatever it returns. - if (_.has(self._callbacksForCacheKey, cacheKey)) { - self._callbacksForCacheKey[cacheKey].push(callback); + if (self._callbacksForOp.has(op)) { + self._callbacksForOp.get(op).push(callback); return; } - var callbacks = self._callbacksForCacheKey[cacheKey] = [callback]; + const callbacks = [callback]; + self._callbacksForOp.set(op, callbacks); Fiber(function () { try { @@ -40,25 +38,22 @@ _.extend(DocFetcher.prototype, { collectionName, {_id: id}) || null; // Return doc to all relevant callbacks. Note that this array can // continue to grow during callback excecution. - while (!_.isEmpty(callbacks)) { + while (callbacks.length > 0) { // Clone the document so that the various calls to fetch don't return // objects that are intertwingled with each other. Clone before // popping the future, so that if clone throws, the error gets passed // to the next callback. - var clonedDoc = EJSON.clone(doc); - callbacks.pop()(null, clonedDoc); + callbacks.pop()(null, EJSON.clone(doc)); } } catch (e) { - while (!_.isEmpty(callbacks)) { + while (callbacks.length > 0) { callbacks.pop()(e); } } finally { // XXX consider keeping the doc around for a period of time before // removing from the cache - delete self._callbacksForCacheKey[cacheKey]; + self._callbacksForOp.delete(op); } }).run(); } -}); - -MongoTest.DocFetcher = DocFetcher; +} diff --git a/packages/mongo/doc_fetcher_tests.js b/packages/mongo/doc_fetcher_tests.js index 6637ed9bca..484b5f6d03 100644 --- a/packages/mongo/doc_fetcher_tests.js +++ b/packages/mongo/doc_fetcher_tests.js @@ -1,5 +1,6 @@ var Fiber = Npm.require('fibers'); var Future = Npm.require('fibers/future'); +import { DocFetcher } from "./doc_fetcher.js"; testAsyncMulti("mongo-livedata - doc fetcher", [ function (test, expect) { @@ -9,17 +10,19 @@ testAsyncMulti("mongo-livedata - doc fetcher", [ var id1 = collection.insert({x: 1}); var id2 = collection.insert({y: 2}); - var fetcher = new MongoTest.DocFetcher( + var fetcher = new DocFetcher( MongoInternals.defaultRemoteCollectionDriver().mongo); // Test basic operation. - fetcher.fetch(collName, id1, Random.id(), expect(null, {_id: id1, x: 1})); - fetcher.fetch(collName, "nonexistent!", Random.id(), expect(null, null)); + const fakeOp1 = {}; + const fakeOp2 = {}; + fetcher.fetch(collName, id1, fakeOp1, expect(null, {_id: id1, x: 1})); + fetcher.fetch(collName, "nonexistent!", fakeOp2, expect(null, null)); var fetched = false; - var cacheKey = Random.id(); + var fakeOp3 = {}; var expected = {_id: id2, y: 2}; - fetcher.fetch(collName, id2, cacheKey, expect(function (e, d) { + fetcher.fetch(collName, id2, fakeOp3, expect(function (e, d) { fetched = true; test.isFalse(e); test.equal(d, expected); @@ -27,10 +30,10 @@ testAsyncMulti("mongo-livedata - doc fetcher", [ // The fetcher yields. test.isFalse(fetched); - // Now ask for another document with the same cache key. Because a fetch for - // that cache key is in flight, we will get the other fetch's document, not - // this random document. - fetcher.fetch(collName, Random.id(), cacheKey, expect(function (e, d) { + // Now ask for another document with the same op reference. Because a + // fetch for that op is in flight, we will get the other fetch's + // document, not this random document. + fetcher.fetch(collName, Random.id(), fakeOp3, expect(function (e, d) { test.isFalse(e); test.equal(d, expected); })); diff --git a/packages/mongo/mongo_driver.js b/packages/mongo/mongo_driver.js index 69b84929dd..7245fd59d2 100644 --- a/packages/mongo/mongo_driver.js +++ b/packages/mongo/mongo_driver.js @@ -9,9 +9,9 @@ var MongoDB = NpmModuleMongodb; var Future = Npm.require('fibers/future'); +import { DocFetcher } from "./doc_fetcher.js"; MongoInternals = {}; -MongoTest = {}; MongoInternals.NpmModules = { mongodb: { diff --git a/packages/mongo/mongo_livedata_tests.js b/packages/mongo/mongo_livedata_tests.js index 50ae855875..30ea3c10e1 100644 --- a/packages/mongo/mongo_livedata_tests.js +++ b/packages/mongo/mongo_livedata_tests.js @@ -3471,17 +3471,18 @@ if (Meteor.isServer) { }, 2000); const session = client.startSession(); - session.startTransaction(); - - Promise.awaitAll(["a", "b"].map((id, index) => { - return rawCollection.update( - { _id: id }, - { $set: { field: `updated${index + 1}` } }, - { session } - ); - })); - - Promise.await(session.commitTransaction()); - session.endSession(); + session.withTransaction(session => { + let promise = Promise.resolve(); + ["a", "b"].forEach((id, index) => { + promise = promise.then(() => rawCollection.update( + { _id: id }, + { $set: { field: `updated${index + 1}` } }, + { session } + )); + }); + return promise; + }).finally(() => { + session.endSession(); + }); }); } diff --git a/packages/mongo/oplog_observe_driver.js b/packages/mongo/oplog_observe_driver.js index 8e42171d5c..113bbc93c8 100644 --- a/packages/mongo/oplog_observe_driver.js +++ b/packages/mongo/oplog_observe_driver.js @@ -504,10 +504,10 @@ _.extend(OplogObserveDriver.prototype, { var fut = new Future; // This loop is safe, because _currentlyFetching will not be updated // during this loop (in fact, it is never mutated). - self._currentlyFetching.forEach(function (cacheKey, id) { + self._currentlyFetching.forEach(function (op, id) { waiting++; self._mongoHandle._docFetcher.fetch( - self._cursorDescription.collectionName, id, cacheKey, + self._cursorDescription.collectionName, id, op, finishIfNeedToPollQuery(function (err, doc) { try { if (err) { @@ -567,7 +567,7 @@ _.extend(OplogObserveDriver.prototype, { _handleOplogEntryQuerying: function (op) { var self = this; Meteor._noYieldsAllowed(function () { - self._needToFetch.set(idForOp(op), op.ts.toString()); + self._needToFetch.set(idForOp(op), op); }); }, _handleOplogEntrySteadyOrFetching: function (op) { @@ -579,7 +579,7 @@ _.extend(OplogObserveDriver.prototype, { if (self._phase === PHASE.FETCHING && ((self._currentlyFetching && self._currentlyFetching.has(id)) || self._needToFetch.has(id))) { - self._needToFetch.set(id, op.ts.toString()); + self._needToFetch.set(id, op); return; } @@ -630,7 +630,7 @@ _.extend(OplogObserveDriver.prototype, { if (e.name !== "MinimongoError") throw e; // We didn't understand the modifier. Re-fetch. - self._needToFetch.set(id, op.ts.toString()); + self._needToFetch.set(id, op); if (self._phase === PHASE.STEADY) { self._fetchModifiedDocuments(); } @@ -640,7 +640,7 @@ _.extend(OplogObserveDriver.prototype, { } else if (!canDirectlyModifyDoc || self._matcher.canBecomeTrueByModifier(op.o) || (self._sorter && self._sorter.affectedByModifier(op.o))) { - self._needToFetch.set(id, op.ts.toString()); + self._needToFetch.set(id, op); if (self._phase === PHASE.STEADY) self._fetchModifiedDocuments(); } diff --git a/packages/mongo/oplog_tailing.js b/packages/mongo/oplog_tailing.js index 8f2bc5dd76..7d2b2fea10 100644 --- a/packages/mongo/oplog_tailing.js +++ b/packages/mongo/oplog_tailing.js @@ -1,5 +1,8 @@ var Future = Npm.require('fibers/future'); +import { NpmModuleMongodb } from "meteor/npm-mongo"; +const { Timestamp } = NpmModuleMongodb; + OPLOG_COLLECTION = 'oplog.rs'; var TOO_FAR_BEHIND = process.env.METEOR_OPLOG_TOO_FAR_BEHIND || 2000; @@ -270,9 +273,13 @@ _.extend(OplogHandle.prototype, { if (doc.o.applyOps) { // This was a successful transaction, so we need to apply the // operations that were involved. + let nextTimestamp = doc.ts; doc.o.applyOps.forEach(op => { // See https://github.com/meteor/meteor/issues/10420. - op.ts = op.ts || doc.ts; + if (!op.ts) { + op.ts = nextTimestamp; + nextTimestamp = nextTimestamp.add(Timestamp.ONE); + } handleDoc(op); }); return; @@ -289,8 +296,6 @@ _.extend(OplogHandle.prototype, { if (typeof doc.ns === "string" && doc.ns.startsWith(self._dbName + ".")) { trigger.collection = doc.ns.slice(self._dbName.length + 1); - } else { - throw new Error("Unexpected ns"); } // Is it a special command and the collection name is hidden diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 724a2b0c8f..9a1ef5274d 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: '1.6.2' + version: '1.7.0' }); Npm.depends({ @@ -69,8 +69,7 @@ Package.onUse(function (api) { // Stuff that should be exposed via a real API, but we haven't yet. api.export('MongoInternals', 'server'); - // For tests only. - api.export('MongoTest', 'server', {testOnly: true}); + api.export("Mongo"); api.addFiles(['mongo_driver.js', 'oplog_tailing.js', diff --git a/packages/non-core/blaze b/packages/non-core/blaze index e6b8a12344..ab651dbf46 160000 --- a/packages/non-core/blaze +++ b/packages/non-core/blaze @@ -1 +1 @@ -Subproject commit e6b8a12344e6c7438f2a06bb98a5796663905150 +Subproject commit ab651dbf468f31fe6f69e89b7388cdf5743b94e9 diff --git a/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json b/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json index 1d8d07771c..12bd41c863 100644 --- a/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "coffeescript": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.3.2.tgz", - "integrity": "sha512-YObiFDoukx7qPBi/K0kUKyntEZDfBQiqs/DbrR1xzASKOBjGT7auD85/DiPeRr9k++lRj7l3uA9TNMLfyfcD/Q==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.4.1.tgz", + "integrity": "sha512-34GV1aHrsMpTaO3KfMJL40ZNuvKDR/g98THHnE9bQj8HjMaZvSrLik99WWqyMhRtbe8V5hpx5iLgdcSvM/S2wg==" }, "source-map": { "version": "0.5.7", diff --git a/packages/non-core/coffeescript-compiler/package.js b/packages/non-core/coffeescript-compiler/package.js index 0850dd130b..bf9b41779f 100644 --- a/packages/non-core/coffeescript-compiler/package.js +++ b/packages/non-core/coffeescript-compiler/package.js @@ -1,29 +1,20 @@ -// The NPM `coffeescript` module requires Node 6+; but instead of checking for -// a Node runtime version, detect support for async functions, which were -// added in Node 7.6. -try { - new Function('async () => {}')(); -} catch (exception) { - throw new Error('Your runtime does not support this version of CoffeeScript. Please upgrade to Meteor 1.6 or later, or use a 1.x version of CoffeeScript.'); -} - - Package.describe({ name: 'coffeescript-compiler', summary: 'Compiler for CoffeeScript code, supporting the coffeescript package', // This version of NPM `coffeescript` module, with _1, _2 etc. // If you change this, make sure to also update ../coffeescript/package.js to match. - version: '2.3.2_1' + version: '2.4.1' }); Npm.depends({ - 'coffeescript': '2.3.2', + 'coffeescript': '2.4.1', 'source-map': '0.5.7' }); Package.onUse(function (api) { - api.use('babel-compiler@6.24.7||7.1.1'); - api.use('ecmascript@0.11.1'); + api.versionsFrom("1.8.1"); + api.use('babel-compiler'); + api.use('ecmascript'); api.mainModule('coffeescript-compiler.js', 'server'); diff --git a/packages/non-core/coffeescript-test-helper/package.js b/packages/non-core/coffeescript-test-helper/package.js index b208cca667..1cd0be0ea4 100644 --- a/packages/non-core/coffeescript-test-helper/package.js +++ b/packages/non-core/coffeescript-test-helper/package.js @@ -1,10 +1,10 @@ Package.describe({ summary: "Used by the coffeescript package's tests", - version: "1.1.3" + version: "1.2.0" }); Package.onUse(function (api) { - api.use('coffeescript@2.2.1_1', ['client', 'server']); + api.use('coffeescript@2.4.1', ['client', 'server']); api.export('COFFEESCRIPT_EXPORTED'); api.export('COFFEESCRIPT_EXPORTED_ONE_MORE'); api.export('COFFEESCRIPT_EXPORTED_WITH_BACKTICKS'); diff --git a/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json b/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json index a59317fc81..30caf81d3c 100644 --- a/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json +++ b/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json @@ -2,14 +2,14 @@ "lockfileVersion": 1, "dependencies": { "@babel/runtime": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", - "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==" + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.0.tgz", + "integrity": "sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==" }, "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" } } } diff --git a/packages/non-core/coffeescript/package.js b/packages/non-core/coffeescript/package.js index 1fe5e6d492..a46a72ce04 100644 --- a/packages/non-core/coffeescript/package.js +++ b/packages/non-core/coffeescript/package.js @@ -6,12 +6,12 @@ Package.describe({ // so bumping the version of this package will be how they get newer versions // of `coffeescript-compiler`. If you change this, make sure to also update // ../coffeescript-compiler/package.js to match. - version: '2.3.2_1' + version: '2.4.1' }); Package.registerBuildPlugin({ name: 'compile-coffeescript', - use: ['caching-compiler@1.1.12', 'ecmascript@0.11.1', 'coffeescript-compiler@2.3.2_1'], + use: ['caching-compiler@1.2.1', 'ecmascript@0.12.7', 'coffeescript-compiler@2.4.1'], sources: ['compile-coffeescript.js'], npmDependencies: { // A breaking change was introduced in @babel/runtime@7.0.0-beta.56 @@ -22,11 +22,12 @@ Package.registerBuildPlugin({ // rather than delegating to the one installed in the application's // node_modules directory, so the coffeescript package can work in // Meteor 1.7.1 apps as well as 1.7.0.x and earlier. - '@babel/runtime': '7.1.2' + '@babel/runtime': '7.6.0' } }); Package.onUse(function (api) { + api.versionsFrom("1.8.1"); api.use('isobuild:compiler-plugin@1.0.0'); // Because the CoffeeScript plugin now calls @@ -35,10 +36,10 @@ Package.onUse(function (api) { // same runtime environment that the 'ecmascript' package provides. // The following api.imply calls should match those in ../../ecmascript/package.js, // except that coffeescript does not api.imply('modules'). - api.imply('ecmascript-runtime@0.7.0'); - api.imply('babel-runtime@1.2.4'); - api.imply('promise@0.11.1'); - api.imply('dynamic-import@0.4.1'); + api.imply('ecmascript-runtime'); + api.imply('babel-runtime'); + api.imply('promise'); + api.imply('dynamic-import'); }); Package.onTest(function (api) { diff --git a/packages/npm-bcrypt/wrapper.js b/packages/npm-bcrypt/wrapper.js index eac4ad51f0..13da915d47 100644 --- a/packages/npm-bcrypt/wrapper.js +++ b/packages/npm-bcrypt/wrapper.js @@ -27,7 +27,9 @@ try { "", " meteor npm install --save bcrypt", "", - "in the root directory of your application." + "in the root directory of your application. You may also need to", + "install build tools to compile bcrypt. For more information see:", + "https://github.com/nodejs/node-gyp#installation" ].join("\n")); } diff --git a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json index 83cc9f223b..e8d5467c68 100644 --- a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json +++ b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "bson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", - "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz", + "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==" }, "memory-pager": { "version": "1.5.0", @@ -12,14 +12,14 @@ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" }, "mongodb": { - "version": "3.1.13", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.13.tgz", - "integrity": "sha512-sz2dhvBZQWf3LRNDhbd30KHVzdjZx9IKC0L+kSZ/gzYquCF5zPOgGqRz6sSCqYZtKP2ekB4nfLxhGtzGHnIKxA==" + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.7.tgz", + "integrity": "sha512-2YdWrdf1PJgxcCrT1tWoL6nHuk6hCxhddAAaEh8QJL231ci4+P9FLyqopbTm2Z2sAU6mhCri+wd9r1hOcHdoMw==" }, "mongodb-core": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.11.tgz", - "integrity": "sha512-rD2US2s5qk/ckbiiGFHeu+yKYDXdJ1G87F6CG3YdaZpzdOm5zpoAZd/EKbPmFO6cQZ+XVXBXBJ660sSI0gc6qg==" + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz", + "integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==" }, "require_optional": { "version": "1.0.1", @@ -37,14 +37,14 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "saslprep": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz", - "integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==" }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "sparse-bitfield": { "version": "3.0.3", diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 656966a6b6..8893ec2bf5 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,12 +3,12 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2", + version: "3.2.0", documentation: null }); Npm.depends({ - mongodb: "3.1.13" + mongodb: "3.2.7" }); Package.onUse(function (api) { diff --git a/packages/promise/package.js b/packages/promise/package.js index 07090384df..1af67abed0 100644 --- a/packages/promise/package.js +++ b/packages/promise/package.js @@ -14,6 +14,7 @@ Npm.depends({ Package.onUse(function(api) { api.use("modules"); api.use("modern-browsers"); + api.use("context", "server", { weak: true }); api.addFiles("modern.js"); api.addFiles("legacy.js", "legacy"); api.mainModule("client.js", "client"); diff --git a/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json b/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json index 22d680ad73..303fc30167 100644 --- a/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json +++ b/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json @@ -2,34 +2,29 @@ "lockfileVersion": 1, "dependencies": { "@babel/runtime": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", - "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==" + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.0.tgz", + "integrity": "sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==" }, "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" }, "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" } } } diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 76871c97f9..1ae8621ddf 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: '1.5.3', + version: '1.5.4', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); @@ -11,9 +11,9 @@ Package.registerBuildPlugin({ 'minifier-css' ], npmDependencies: { - "@babel/runtime": "7.1.2", - "source-map": "0.5.6", - "lru-cache": "4.1.3" + "@babel/runtime": "7.6.0", + "source-map": "0.6.1", + "lru-cache": "5.1.1" }, sources: [ 'plugin/minify-css.js' diff --git a/packages/standard-minifier-js/.npm/plugin/minifyStdJS/npm-shrinkwrap.json b/packages/standard-minifier-js/.npm/plugin/minifyStdJS/npm-shrinkwrap.json index 1f1254a557..e667352263 100644 --- a/packages/standard-minifier-js/.npm/plugin/minifyStdJS/npm-shrinkwrap.json +++ b/packages/standard-minifier-js/.npm/plugin/minifyStdJS/npm-shrinkwrap.json @@ -2,14 +2,14 @@ "lockfileVersion": 1, "dependencies": { "@babel/runtime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", - "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==" + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.4.tgz", + "integrity": "sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw==" }, "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" } } } diff --git a/packages/standard-minifier-js/package.js b/packages/standard-minifier-js/package.js index 6f98cf77c3..1005ec92de 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: '2.4.1', + version: '2.5.2', summary: 'Standard javascript minifiers used with Meteor apps by default.', documentation: 'README.md', }); @@ -13,7 +13,7 @@ Package.registerBuildPlugin({ 'ecmascript' ], npmDependencies: { - "@babel/runtime": "7.0.0" + "@babel/runtime": "7.7.4" }, sources: [ 'plugin/minify-js.js', diff --git a/packages/test-helpers/domutils.js b/packages/test-helpers/domutils.js index e5a29025e2..c2c097e209 100644 --- a/packages/test-helpers/domutils.js +++ b/packages/test-helpers/domutils.js @@ -41,7 +41,7 @@ DomUtils.setElementValue = function (node, value) { // match valid OPTION values... and moreover, the OPTION value must be // explicitly given as an attribute, not just as the text. So we hunt for // the OPTION and select it. - var options = $(node).find('option'); + var options = node.querySelectorAll('option'); for (var i = 0; i < options.length; ++i) { if (DomUtils.getElementValue(options[i]) === value) { options[i].selected = true; diff --git a/packages/test-helpers/event_simulation.js b/packages/test-helpers/event_simulation.js index 672fd03771..cf4ed8b3af 100644 --- a/packages/test-helpers/event_simulation.js +++ b/packages/test-helpers/event_simulation.js @@ -2,7 +2,7 @@ // bubbles: A boolean indicating whether the event should bubble up through // the event chain or not. (default is true) simulateEvent = function (node, event, args, options) { - node = (node instanceof $ ? node[0] : node); + node = (node.jquery ? node[0] : node); var bubbles = (options && "bubbles" in options) ? options.bubbles : true; diff --git a/packages/test-helpers/package.js b/packages/test-helpers/package.js index eceb520f15..f7d100e215 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: '1.1.0' + version: '1.1.1' }); Package.onUse(function (api) { @@ -14,8 +14,6 @@ Package.onUse(function (api) { 'blaze', ]); - api.use(['jquery@1.11.1'], 'client'); - // XXX for connection.js. Not sure this really belongs in // test-helpers. It probably would be better off in livedata. But it's // unclear how to put it in livedata so that it can both be used by diff --git a/scripts/admin/eslint/.gitignore b/packages/test-in-browser/.npm/package/.gitignore similarity index 100% rename from scripts/admin/eslint/.gitignore rename to packages/test-in-browser/.npm/package/.gitignore diff --git a/packages/test-in-browser/.npm/package/README b/packages/test-in-browser/.npm/package/README new file mode 100644 index 0000000000..3d492553a4 --- /dev/null +++ b/packages/test-in-browser/.npm/package/README @@ -0,0 +1,7 @@ +This directory and the files immediately inside it are automatically generated +when you change this package's NPM dependencies. Commit the files in this +directory (npm-shrinkwrap.json, .gitignore, and this README) to source control +so that others run the same versions of sub-dependencies. + +You should NOT check in the node_modules directory that Meteor automatically +creates; if you are using git, the .gitignore file tells git to ignore it. diff --git a/packages/test-in-browser/.npm/package/npm-shrinkwrap.json b/packages/test-in-browser/.npm/package/npm-shrinkwrap.json new file mode 100644 index 0000000000..0a96a3c1a8 --- /dev/null +++ b/packages/test-in-browser/.npm/package/npm-shrinkwrap.json @@ -0,0 +1,10 @@ +{ + "lockfileVersion": 1, + "dependencies": { + "bootstrap": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", + "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==" + } + } +} diff --git a/packages/test-in-browser/driver.css b/packages/test-in-browser/driver.css index 0251f37d4f..1a870bc9e9 100644 --- a/packages/test-in-browser/driver.css +++ b/packages/test-in-browser/driver.css @@ -1,11 +1,23 @@ body { - padding-top: 60px; - padding-bottom: 40px; + height: 100vh; + width: 100vw; +} + +.test-in-browser { + display: flex; + height: 100%; + flex-direction: column; +} + +.test-results { + flex: 1; + overflow: auto; } #testProgressBar { - margin-top: 10px; - position: relative; + flex: 1; + max-width: 400px; + position: relative; } .header { diff --git a/packages/test-in-browser/driver.html b/packages/test-in-browser/driver.html index fbd3ec10e1..52bd3b8aad 100644 --- a/packages/test-in-browser/driver.html +++ b/packages/test-in-browser/driver.html @@ -1,81 +1,69 @@ + -