mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Merge branch 'devel' into underscore/webapp
This commit is contained in:
@@ -62,6 +62,7 @@ build_machine_environment: &build_machine_environment
|
||||
# Specify that we want an actual machine (ala Circle 1.0), not a Docker image.
|
||||
docker:
|
||||
- image: meteor/circleci:android-30-node-14
|
||||
resource_class: large
|
||||
environment:
|
||||
# This multiplier scales the waitSecs for selftests.
|
||||
TIMEOUT_SCALE_FACTOR: 8
|
||||
@@ -261,7 +262,7 @@ jobs:
|
||||
--headless \
|
||||
--junit ./tmp/results/junit/0.xml \
|
||||
--without-tag "custom-warehouse"
|
||||
no_output_timeout: 20m
|
||||
no_output_timeout: 30m
|
||||
- run:
|
||||
<<: *run_save_node_bin
|
||||
- store_test_results:
|
||||
@@ -746,6 +747,7 @@ jobs:
|
||||
docker:
|
||||
# This Node version should match that in the meteor/docs CircleCI config.
|
||||
- image: meteor/circleci:android-28-node-12
|
||||
resource_class: large
|
||||
environment:
|
||||
CHECKOUT_METEOR_DOCS: /home/circleci/test_docs
|
||||
steps:
|
||||
|
||||
15
.github/workflows/check-syntax.yml
vendored
Normal file
15
.github/workflows/check-syntax.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
name: Check legacy syntax
|
||||
on:
|
||||
- push
|
||||
- pull_request
|
||||
jobs:
|
||||
check-code-style:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18.x
|
||||
- run: cd scripts/admin/check-legacy-syntax && npm ci
|
||||
- name: Check syntax
|
||||
run: cd scripts/admin/check-legacy-syntax && node check-syntax.js
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
[](https://travis-ci.org/meteor/meteor)
|
||||
[](https://circleci.com/gh/meteor/meteor/tree/devel)
|
||||
[](https://meteor.com)
|
||||
[](https://meteor.com)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
title: Meteor API Docs
|
||||
subtitle: API Docs
|
||||
versions:
|
||||
- '2.12'
|
||||
- '2.11'
|
||||
- '2.10'
|
||||
- '2.9'
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
* MongoDB Server 6.x Support
|
||||
* Embedded Mongo now uses MongoDB 6.0.3
|
||||
* Some pr [GH someone] [PR #number] // this will become -> [StorytellerCZ](https://github.com/someone) [PR](https://github.com/meteor/meteor/pull/number)
|
||||
* Some pr [GH someone] [PR #number] // this will become -> [someone](https://github.com/someone) [PR](https://github.com/meteor/meteor/pull/number)
|
||||
#### Breaking Changes
|
||||
|
||||
N/A
|
||||
|
||||
@@ -45,23 +45,55 @@ const main = async () => {
|
||||
const filesStream = files
|
||||
.map(file => {
|
||||
console.log(`reading file: ${ file }`);
|
||||
return fs.readFile(`./generators/changelog/versions/${ file }`, 'utf8');
|
||||
return {
|
||||
fileName: file,
|
||||
buf : fs.readFile(`./generators/changelog/versions/${ file }`, 'utf8')
|
||||
};
|
||||
})
|
||||
.map(async (buf, index) => {
|
||||
.map(async ({buf, fileName}, index) => {
|
||||
// first file we don't do anything
|
||||
// Big file and does not follow the new standard
|
||||
if (index === 0) return buf;
|
||||
const content = (await buf).toString();
|
||||
/**
|
||||
* @type {Set<string>}
|
||||
*/
|
||||
const contribuitors = new Set()
|
||||
|
||||
// DSL Replacers
|
||||
// [PR #123] -> [PR #123](https://github.com/meteor/meteor/pull/123)
|
||||
// [GH meteor/meteor] -> [meteor/meteor](https://github.com/meteor/meteor)
|
||||
// package-name@get-version -> package-name@1.3.3
|
||||
|
||||
return content
|
||||
.replace(/\[PR #(\d+)\]/g, (_, number) => `[PR #${ number }](https://github.com/meteor/meteor/pull/${ number })`)
|
||||
.replace(/\[GH ([^\]]+)\]/g, (_, name) => `[${ name }](https://github.com/${ name })`)
|
||||
const file = content
|
||||
.replace(/\[PR #(\d+)\]/g, (_, number) => `[PR](https://github.com/meteor/meteor/pull/${ number })`)
|
||||
.replace(/\[GH ([^\]]+)\]/g, (_, name) => {
|
||||
contribuitors.add(name);
|
||||
return `[${ name }](https://github.com/${ name })`
|
||||
})
|
||||
.replace(/([a-z0-9-]+)@get-version/g, (_, name) => `${ name }@${ getPackageVersion(name) }`);
|
||||
|
||||
// already have the contribuitors thanks in the file
|
||||
if (
|
||||
file.includes('#### Special thanks to') ||
|
||||
file.includes('[//]: # (Do not edit this file by hand.)')
|
||||
) return file;
|
||||
|
||||
// add the contribuitors
|
||||
const contribuitorsList =
|
||||
Array
|
||||
.from(contribuitors)
|
||||
.map(name => `- [@${ name }](https://github.com/${ name }).`)
|
||||
.join('\n');
|
||||
|
||||
const doneFile = `${ file }\n\n#### Special thanks to\n\n${ contribuitorsList }\n\n`;
|
||||
|
||||
//SIDE EFFECTS
|
||||
// so that this is not ran every time, we will update the last file.
|
||||
// this is for the expensive part of the script
|
||||
if (index === files.length - 2) await fs.writeFile(`./generators/changelog/versions/${fileName}`, doneFile);
|
||||
|
||||
return doneFile;
|
||||
})
|
||||
.reverse();
|
||||
console.log('Giving some touches to the files');
|
||||
|
||||
@@ -44,15 +44,15 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
|
||||
#### Meteor Version Release
|
||||
|
||||
* `accounts-2fa@get-version`:
|
||||
* `accounts-2fa@2.0.2`:
|
||||
- removed .npm/package contents and added .gitignore
|
||||
|
||||
* `accounts-base@get-version`:
|
||||
* `accounts-base@2.2.7`:
|
||||
- Updated types to match async methods added in newer versions.
|
||||
- Ensured the meteor.loginServiceConfiguration subscription always becomes ready, by adding a this.ready() call.
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520].
|
||||
|
||||
* `accounts-password@get-version`:
|
||||
* `accounts-password@2.3.4`:
|
||||
- Updated `Accounts.changePassword` and `Accounts.resetPassword` to be correctly verify if the new password is
|
||||
valid.
|
||||
- removed .npm/package contents and added .gitignore
|
||||
@@ -68,18 +68,18 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
* `ecmascript@0.16.6`:
|
||||
- Updated typescript to version 4.9.4.
|
||||
|
||||
* `email@get-version`:
|
||||
* `email@2.2.4`:
|
||||
- Updated types to match async methods added in newer versions.
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520].
|
||||
|
||||
* `logging@get-version`:
|
||||
* `logging@1.3.2`:
|
||||
- removed .npm/package contents and added .gitignore
|
||||
|
||||
* `Command line`:
|
||||
- Corrected typo in vue skeleton.
|
||||
- Command `meteor mongo` was removed due compatibility with MongoDB v6.x of `mongosh`
|
||||
|
||||
* `meteor@get-version`:
|
||||
* `meteor@1.11.1`:
|
||||
- updated types to removed unused Blaze types
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520].
|
||||
|
||||
@@ -87,7 +87,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
- Updated performance of makeLookupFunction
|
||||
- In async wrappers, catch exceptions and reject
|
||||
|
||||
* `mongo@get-version`:
|
||||
* `mongo@1.16.5`:
|
||||
- In async wrappers, catch exceptions and reject
|
||||
- Updated MongoDB types to match driver version 4.13.0 and MongoDB server version 6.0.3
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520].
|
||||
@@ -100,7 +100,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
* `oauth@2.2.0`:
|
||||
- bumped cordova-plugin-inappbrowser to 5.0.0
|
||||
|
||||
* `react-fast-refresh@get-version`:
|
||||
* `react-fast-refresh@0.2.6`:
|
||||
- removed .npm/package contents and added .gitignore
|
||||
|
||||
* `standard-minifier-css@1.9.0`:
|
||||
@@ -112,10 +112,10 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
* `typescript@4.9.4`
|
||||
- Updated typescript to version 4.9.4.
|
||||
|
||||
* `underscore@get-version`:
|
||||
* `underscore@1.0.12`:
|
||||
- Added dependency in types to underscore
|
||||
|
||||
* `webapp@get-version`:
|
||||
* `webapp@1.13.4`:
|
||||
- Added dependency in types to webapp(to connect)
|
||||
- removed .npm/package contents and added .gitignore
|
||||
|
||||
|
||||
151
docs/generators/changelog/versions/2.12.md
Normal file
151
docs/generators/changelog/versions/2.12.md
Normal file
@@ -0,0 +1,151 @@
|
||||
## v2.12.0, 2023-04-28
|
||||
|
||||
### Highlights
|
||||
|
||||
* Document main function in webapp by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12579)
|
||||
* Add undocument properties to docs by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12563)
|
||||
* Bump NPM versions for css minifiers by [wreiske](https://github.com/wreiske) [PR](https://github.com/meteor/meteor/pull/12562)
|
||||
* Updated Email and Mongo package types by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12554)
|
||||
* Updated security.md by [jamauro](https://github.com/jamauro) [PR](https://github.com/meteor/meteor/pull/12461)
|
||||
* Added addHtmlAttributeHook type on WebApp by [DblK](https://github.com/DblK) [PR](https://github.com/meteor/meteor/pull/12545)
|
||||
* Added loginServiceConfiguration type on Accounts by [DblK](https://github.com/DblK) [PR](https://github.com/meteor/meteor/pull/12539)
|
||||
* Add TS types for Mongo Collection countDocuments and estimatedDocumentCount by [ArthurHoaro](https://github.com/ArthurHoaro) [PR](https://github.com/meteor/meteor/pull/12533)
|
||||
* Allow setting a custom ddp-rate-limit message per rule by [wreiske](https://github.com/wreiske) [PR](https://github.com/meteor/meteor/pull/12082)
|
||||
* Updated MongoDB driver to 4.15 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12583)
|
||||
* Adding warn with env variable when using old apis vy [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12585)
|
||||
* Fix syntax for legacy client by [zodern](https://github.com/zodern) [PR](https://github.com/meteor/meteor/pull/12596)
|
||||
* Updating MongoDB driver to 4.16 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12599)
|
||||
* Update sockjs-client by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12590)
|
||||
* [Accounts] set custom collection by [dmromanov](https://github.com/dmromanov) [PR](https://github.com/meteor/meteor/pull/12591)
|
||||
* Wrappers to help in the async migration by [matheusccastroo](https://github.com/matheusccastroo) [PR](https://github.com/meteor/meteor/pull/12593)
|
||||
* Mongo query hangs all clients subscribed to a query/collection by [KoenLav](https://github.com/KoenLav) [PR](https://github.com/meteor/meteor/pull/12587)
|
||||
* Blaze to 2.6.2 by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/blaze/pull/411)
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
N/A
|
||||
|
||||
#### Internal API changes
|
||||
|
||||
N/A
|
||||
|
||||
#### Migration Steps
|
||||
|
||||
Now if you want to check where do you call old-style api methods
|
||||
you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process.
|
||||
|
||||
|
||||
#### Meteor Version Release
|
||||
|
||||
* `accounts-base@2.2.8`:
|
||||
- Added `loginServiceConfiguration` type.
|
||||
- Added the `collection` option property, in order to be able to set the collection for Accounts,
|
||||
more can be seen in the [discussion](https://github.com/meteor/meteor/discussions/12544#discussioncomment-5240763)
|
||||
and in the [related issue](https://github.com/meteor/meteor-feature-requests/issues/20).
|
||||
- `onCreateUserHook` now accept promises and wait if necessary.
|
||||
|
||||
* `babel-compiler@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `browser-policy-content@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `browser-policy-framing@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `browser-policy@get-version`:
|
||||
- Updated test name.
|
||||
|
||||
* `callback-hook@get-version`:
|
||||
- Added async hooks possibility to make async migrations easier.
|
||||
|
||||
* `context@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `ddp-rate-limiter@1.2.0`:
|
||||
- Allow setting a custom ddp-rate-limit message per rule.
|
||||
|
||||
* `ddp-server@2.6.1`:
|
||||
- Updated sockjs version.
|
||||
|
||||
* `dev-error-overlay@get-version`:
|
||||
- Added `es5` compatible syntax by adding the `ecmascript` package.
|
||||
|
||||
* `dynamic-import@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `ecmascript@get-version`:
|
||||
- Updated tests location.
|
||||
|
||||
* `ecmascript-runtime@get-version`:
|
||||
- Updated npm dependencies.
|
||||
|
||||
* `email@2.2.5`:
|
||||
- Updated type `CustomEmailOptions` to be a type instead of an interface.
|
||||
|
||||
* `hot-module-replacement@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
|
||||
* `meteor@1.11.2`:
|
||||
- Added documentation for `isTest`, `isAppTest` and `isPackageTest` methods.
|
||||
- Added possibility to add async hooks to make async migrations easier. [PR](https://github.com/meteor/meteor/pull/12593)
|
||||
|
||||
* `minifier-css@1.6.4`:
|
||||
- Bump NPM versions for css minifiers.
|
||||
|
||||
* `minimongo@get-version`:
|
||||
- Updated to be able to track old api usage.
|
||||
|
||||
* `modules-runtime-hot@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `mongo@1.16.6`:
|
||||
- Added `countDocuments` and `estimatedDocumentCount` types.
|
||||
- Added warning for when old style apis are being used, to use this feature,
|
||||
use the variable`WARN_WHEN_USING_OLD_API=true` before starting the Meteor process.
|
||||
- Oplog driver updated to not throw error when MongoDB server and Meteor client mismatch. [issue](https://github.com/meteor/meteor/issues/12516)
|
||||
|
||||
* `non-core`:
|
||||
- Blaze to version 2.6.2.
|
||||
|
||||
* `npm-mongo@4.16.0`:
|
||||
- Updated MongoDB driver to 4.15.
|
||||
- Updated MongoDB driver to 4.16.
|
||||
|
||||
* `rate-limit@1.1.1`:
|
||||
- Added `ruleId` property that will be used for setting messages.
|
||||
|
||||
* `react-fast-refresh@get-version`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `socket-stream-client@0.5.0`:
|
||||
- Updated sockjs version.
|
||||
|
||||
* `standard-minifier-css@1.9.2`:
|
||||
- Bump NPM versions for css minifiers.
|
||||
|
||||
* `tracker@get-version`:
|
||||
- Updated types and updated JSDocs for `Tracker.withComputation`.
|
||||
|
||||
* `underscore@get-version`:
|
||||
- Updated npm dependencies.
|
||||
|
||||
* `webapp@1.13.5`:
|
||||
- Added `addHtmlAttributeHook` type.
|
||||
|
||||
|
||||
|
||||
#### Special thanks to
|
||||
|
||||
- [@harryadel](https://github.com/harryadel).
|
||||
- [@wreiske](https://github.com/wreiske).
|
||||
- [@ebroder](https://github.com/ebroder).
|
||||
- [@jamauro](https://github.com/jamauro).
|
||||
- [@DblK](https://github.com/DblK).
|
||||
- [@ArthurHoaro](https://github.com/ArthurHoaro).
|
||||
- [@Grubba27](https://github.com/Grubba27).
|
||||
- [@zodern](https://github.com/zodern).
|
||||
- [@dmromanov](https://github.com/dmromanov).
|
||||
- [@matheusccastroo](https://github.com/matheusccastroo).
|
||||
|
||||
173
docs/history.md
173
docs/history.md
@@ -10,6 +10,157 @@
|
||||
|
||||
|
||||
|
||||
## v2.12.0, 2023-04-28
|
||||
|
||||
### Highlights
|
||||
|
||||
* Document main function in webapp by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12579)
|
||||
* Add undocument properties to docs by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12563)
|
||||
* Bump NPM versions for css minifiers by [wreiske](https://github.com/wreiske) [PR](https://github.com/meteor/meteor/pull/12562)
|
||||
* Updated Email and Mongo package types by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12554)
|
||||
* Updated security.md by [jamauro](https://github.com/jamauro) [PR](https://github.com/meteor/meteor/pull/12461)
|
||||
* Added addHtmlAttributeHook type on WebApp by [DblK](https://github.com/DblK) [PR](https://github.com/meteor/meteor/pull/12545)
|
||||
* Added loginServiceConfiguration type on Accounts by [DblK](https://github.com/DblK) [PR](https://github.com/meteor/meteor/pull/12539)
|
||||
* Add TS types for Mongo Collection countDocuments and estimatedDocumentCount by [ArthurHoaro](https://github.com/ArthurHoaro) [PR](https://github.com/meteor/meteor/pull/12533)
|
||||
* Allow setting a custom ddp-rate-limit message per rule by [wreiske](https://github.com/wreiske) [PR](https://github.com/meteor/meteor/pull/12082)
|
||||
* Updated MongoDB driver to 4.15 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12583)
|
||||
* Adding warn with env variable when using old apis vy [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12585)
|
||||
* Fix syntax for legacy client by [zodern](https://github.com/zodern) [PR](https://github.com/meteor/meteor/pull/12596)
|
||||
* Updating MongoDB driver to 4.16 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12599)
|
||||
* Update sockjs-client by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12590)
|
||||
* [Accounts] set custom collection by [dmromanov](https://github.com/dmromanov) [PR](https://github.com/meteor/meteor/pull/12591)
|
||||
* Wrappers to help in the async migration by [matheusccastroo](https://github.com/matheusccastroo) [PR](https://github.com/meteor/meteor/pull/12593)
|
||||
* Mongo query hangs all clients subscribed to a query/collection by [KoenLav](https://github.com/KoenLav) [PR](https://github.com/meteor/meteor/pull/12587)
|
||||
* Blaze to 2.6.2 by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/blaze/pull/411)
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
N/A
|
||||
|
||||
#### Internal API changes
|
||||
|
||||
N/A
|
||||
|
||||
#### Migration Steps
|
||||
|
||||
Now if you want to check where do you call old-style api methods
|
||||
you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process.
|
||||
|
||||
|
||||
#### Meteor Version Release
|
||||
|
||||
* `accounts-base@2.2.8`:
|
||||
- Added `loginServiceConfiguration` type.
|
||||
- Added the `collection` option property, in order to be able to set the collection for Accounts,
|
||||
more can be seen in the [discussion](https://github.com/meteor/meteor/discussions/12544#discussioncomment-5240763)
|
||||
and in the [related issue](https://github.com/meteor/meteor-feature-requests/issues/20).
|
||||
- `onCreateUserHook` now accept promises and wait if necessary.
|
||||
|
||||
* `babel-compiler@7.10.4`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `browser-policy-content@1.1.2`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `browser-policy-framing@1.1.2`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `browser-policy@1.1.2`:
|
||||
- Updated test name.
|
||||
|
||||
* `callback-hook@1.5.1`:
|
||||
- Added async hooks possibility to make async migrations easier.
|
||||
|
||||
* `context@0.5.1`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `ddp-rate-limiter@1.2.0`:
|
||||
- Allow setting a custom ddp-rate-limit message per rule.
|
||||
|
||||
* `ddp-server@2.6.1`:
|
||||
- Updated sockjs version.
|
||||
|
||||
* `dev-error-overlay@0.1.2`:
|
||||
- Added `es5` compatible syntax by adding the `ecmascript` package.
|
||||
|
||||
* `dynamic-import@0.7.3`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `ecmascript@0.16.7`:
|
||||
- Updated tests location.
|
||||
|
||||
* `ecmascript-runtime@0.8.1`:
|
||||
- Updated npm dependencies.
|
||||
|
||||
* `email@2.2.5`:
|
||||
- Updated type `CustomEmailOptions` to be a type instead of an interface.
|
||||
|
||||
* `hot-module-replacement@0.5.3`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
|
||||
* `meteor@1.11.2`:
|
||||
- Added documentation for `isTest`, `isAppTest` and `isPackageTest` methods.
|
||||
- Added possibility to add async hooks to make async migrations easier. [PR](https://github.com/meteor/meteor/pull/12593)
|
||||
|
||||
* `minifier-css@1.6.4`:
|
||||
- Bump NPM versions for css minifiers.
|
||||
|
||||
* `minimongo@1.9.3`:
|
||||
- Updated to be able to track old api usage.
|
||||
|
||||
* `modules-runtime-hot@0.14.2`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `mongo@1.16.6`:
|
||||
- Added `countDocuments` and `estimatedDocumentCount` types.
|
||||
- Added warning for when old style apis are being used, to use this feature,
|
||||
use the variable`WARN_WHEN_USING_OLD_API=true` before starting the Meteor process.
|
||||
- Oplog driver updated to not throw error when MongoDB server and Meteor client mismatch. [issue](https://github.com/meteor/meteor/issues/12516)
|
||||
|
||||
* `non-core`:
|
||||
- Blaze to version 2.6.2.
|
||||
|
||||
* `npm-mongo@4.16.0`:
|
||||
- Updated MongoDB driver to 4.15.
|
||||
- Updated MongoDB driver to 4.16.
|
||||
|
||||
* `rate-limit@1.1.1`:
|
||||
- Added `ruleId` property that will be used for setting messages.
|
||||
|
||||
* `react-fast-refresh@0.2.7`:
|
||||
- Added `es5` compatible syntax.
|
||||
|
||||
* `socket-stream-client@0.5.0`:
|
||||
- Updated sockjs version.
|
||||
|
||||
* `standard-minifier-css@1.9.2`:
|
||||
- Bump NPM versions for css minifiers.
|
||||
|
||||
* `tracker@1.3.2`:
|
||||
- Updated types and updated JSDocs for `Tracker.withComputation`.
|
||||
|
||||
* `underscore@1.0.13`:
|
||||
- Updated npm dependencies.
|
||||
|
||||
* `webapp@1.13.5`:
|
||||
- Added `addHtmlAttributeHook` type.
|
||||
|
||||
|
||||
|
||||
#### Special thanks to
|
||||
|
||||
- [@harryadel](https://github.com/harryadel).
|
||||
- [@wreiske](https://github.com/wreiske).
|
||||
- [@ebroder](https://github.com/ebroder).
|
||||
- [@jamauro](https://github.com/jamauro).
|
||||
- [@DblK](https://github.com/DblK).
|
||||
- [@ArthurHoaro](https://github.com/ArthurHoaro).
|
||||
- [@Grubba27](https://github.com/Grubba27).
|
||||
- [@zodern](https://github.com/zodern).
|
||||
- [@dmromanov](https://github.com/dmromanov).
|
||||
- [@matheusccastroo](https://github.com/matheusccastroo).
|
||||
|
||||
## v2.11.0, 2023-03-02
|
||||
|
||||
### Highlights
|
||||
@@ -32,13 +183,13 @@
|
||||
* Remove Blaze dependency and types that live in blaze.d.ts
|
||||
by [perbergland](https://github.com/perbergland) [PR](https://github.com/meteor/meteor/pull/12428)
|
||||
|
||||
* Switch typescript skeleton to zodern:types and test that it works by [ebroder](https://github.com/ebroder) [PR #12510](https://github.com/meteor/meteor/pull/12510)
|
||||
* Remove packages/*/.npm from gitignore and add missing .npm folders by [ebroder](https://github.com/ebroder) [PR #12508](https://github.com/meteor/meteor/pull/12508)
|
||||
* Add type definitions for async methods from Meteor 2.9 by [ebroder](https://github.com/ebroder) [PR #12507](https://github.com/meteor/meteor/pull/12507)
|
||||
* TypeScript skeleton fixes by [ebroder](https://github.com/ebroder) [PR #12506](https://github.com/meteor/meteor/pull/12506)
|
||||
* Fix TypeScript type dependencies for mongo, webapp, and underscore by [ebroder](https://github.com/ebroder) [PR #12505](https://github.com/meteor/meteor/pull/12505)
|
||||
* Improve specificity of types previously declared as "Object" by [ebroder](https://github.com/ebroder) [PR #12520](https://github.com/meteor/meteor/pull/12520)
|
||||
* Bump to Node 14.21.3 by [StorytellerCZ](https://github.com/StorytellerCZ) [PR #12517](https://github.com/meteor/meteor/pull/12517)
|
||||
* Switch typescript skeleton to zodern:types and test that it works by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12510)
|
||||
* Remove packages/*/.npm from gitignore and add missing .npm folders by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12508)
|
||||
* Add type definitions for async methods from Meteor 2.9 by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12507)
|
||||
* TypeScript skeleton fixes by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12506)
|
||||
* Fix TypeScript type dependencies for mongo, webapp, and underscore by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12505)
|
||||
* Improve specificity of types previously declared as "Object" by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12520)
|
||||
* Bump to Node 14.21.3 by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/meteor/pull/12517)
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
@@ -62,7 +213,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
* `accounts-base@2.2.7`:
|
||||
- Updated types to match async methods added in newer versions.
|
||||
- Ensured the meteor.loginServiceConfiguration subscription always becomes ready, by adding a this.ready() call.
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520](https://github.com/meteor/meteor/pull/12520).
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520).
|
||||
|
||||
* `accounts-password@2.3.4`:
|
||||
- Updated `Accounts.changePassword` and `Accounts.resetPassword` to be correctly verify if the new password is
|
||||
@@ -82,7 +233,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
|
||||
* `email@2.2.4`:
|
||||
- Updated types to match async methods added in newer versions.
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520](https://github.com/meteor/meteor/pull/12520).
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520).
|
||||
|
||||
* `logging@1.3.2`:
|
||||
- removed .npm/package contents and added .gitignore
|
||||
@@ -93,7 +244,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
|
||||
* `meteor@1.11.1`:
|
||||
- updated types to removed unused Blaze types
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520](https://github.com/meteor/meteor/pull/12520).
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520).
|
||||
|
||||
* `minimongo@1.9.2`:
|
||||
- Updated performance of makeLookupFunction
|
||||
@@ -102,7 +253,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi
|
||||
* `mongo@1.16.5`:
|
||||
- In async wrappers, catch exceptions and reject
|
||||
- Updated MongoDB types to match driver version 4.13.0 and MongoDB server version 6.0.3
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR #12520](https://github.com/meteor/meteor/pull/12520).
|
||||
- Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520).
|
||||
- Now uses MongoDB v6.0.3
|
||||
- Now uses Node v14.21.3
|
||||
|
||||
|
||||
@@ -69,6 +69,11 @@ client, no arguments are passed.
|
||||
The `connection` object the request came in on. See
|
||||
[`Meteor.onConnection`](#meteor_onconnection) for details.
|
||||
{% enddtdd %}
|
||||
|
||||
{% dtdd name:"collection" type:"Object" %}
|
||||
The `collection` The name of the Mongo.Collection
|
||||
or the Mongo.Collection object to hold the users.
|
||||
{% enddtdd %}
|
||||
</dl>
|
||||
|
||||
{% apibox "AccountsClient" %}
|
||||
@@ -212,6 +217,11 @@ are called with a single argument, the attempt info object:
|
||||
[`Meteor.onConnection`](#meteor_onconnection) for details.
|
||||
{% enddtdd %}
|
||||
|
||||
{% dtdd name:"collection" type:"Object" %}
|
||||
The `collection` The name of the Mongo.Collection
|
||||
or the Mongo.Collection object to hold the users.
|
||||
{% enddtdd %}
|
||||
|
||||
{% dtdd name:"methodName" type:"String" %}
|
||||
The name of the Meteor method being used to login.
|
||||
{% enddtdd %}
|
||||
|
||||
@@ -54,3 +54,13 @@ if (Meteor.isServer) {
|
||||
{% apibox "Meteor.settings" %}
|
||||
|
||||
{% apibox "Meteor.release" %}
|
||||
|
||||
{% apibox "Meteor.isModern" %}
|
||||
|
||||
{% apibox "Meteor.gitCommitHash" %}
|
||||
|
||||
{% apibox "Meteor.isTest" %}
|
||||
|
||||
{% apibox "Meteor.isAppTest" %}
|
||||
|
||||
{% apibox "Meteor.isPackageTest" %}
|
||||
|
||||
@@ -249,3 +249,35 @@ DDPRateLimiter.addRule(loginRule, 5, 1000);
|
||||
```
|
||||
{% apibox "DDPRateLimiter.removeRule" nested:true instanceDelimiter:. %}
|
||||
{% apibox "DDPRateLimiter.setErrorMessage" nested:true instanceDelimiter:. %}
|
||||
{% apibox "DDPRateLimiter.setErrorMessageOnRule" nested:true instanceDelimiter:. %}
|
||||
|
||||
Allows developers to specify custom error messages for each rule instead of being
|
||||
limited to one global error message for every rule.
|
||||
It adds some clarity to what rules triggered which errors, allowing for better UX
|
||||
and also opens the door for i18nable error messages per rule instead of the
|
||||
default English error message.
|
||||
|
||||
Here is an example with a custom error message:
|
||||
```js
|
||||
const setupGoogleAuthenticatorRule = {
|
||||
userId(userId) {
|
||||
const user = Meteor.users.findOne(userId);
|
||||
return user;
|
||||
},
|
||||
type: 'method',
|
||||
name: 'Users.setupGoogleAuthenticator',
|
||||
};
|
||||
|
||||
// Add the rule, allowing up to 1 google auth setup message every 60 seconds
|
||||
const ruleId = DDPRateLimiter.addRule(setupGoogleAuthenticatorRule, 1, 60000);
|
||||
DDPRateLimiter.setErrorMessageOnRule(ruleId, function (data) {
|
||||
return `You have reached the maximum number of Google Authenticator attempts. Please try again in ${Math.ceil(data.timeToReset / 1000)} seconds.`;
|
||||
});
|
||||
```
|
||||
|
||||
Or a more simple approach:
|
||||
|
||||
```js
|
||||
const ruleId = DDPRateLimiter.addRule(setupGoogleAuthenticatorRule, 1, 60000);
|
||||
DDPRateLimiter.setErrorMessageOnRule(ruleId, 'Example as a single string error message');
|
||||
```
|
||||
@@ -86,21 +86,51 @@ a `Tracker.withComputation` call.
|
||||
|
||||
```javascript
|
||||
Tracker.autorun(async function example1(computation) {
|
||||
let asyncData =
|
||||
await Tracker.withComputation(computation, () => asyncDataFunction());
|
||||
let users = Meteor.users.find({}).fetch();
|
||||
let asyncData = await asyncDataFunction();
|
||||
let users =
|
||||
await Tracker.withComputation(computation, () => Meteor.users.find({}).fetch());
|
||||
});
|
||||
```
|
||||
> If you want to get computation in other way you can use `Tracker.currentComputation`
|
||||
|
||||
#### Using async callbacks in versions of Meteor prior to 2.10
|
||||
|
||||
{% apibox "Tracker.withComputation" %}
|
||||
|
||||
In general, the rules to use `Tracker.withComputation` like this:
|
||||
1. `async` function *before the first* `await` if just like a sync one.
|
||||
2. `async` function *after the first* `await` looses the `Tracker.currentComputation`
|
||||
but it can be restored using `Tracker.withComputation`, *but only within the callback*.
|
||||
|
||||
If you have for example:
|
||||
|
||||
```javascript
|
||||
Tracker.autorun(async function (computation) {
|
||||
let asyncData = await someAsyncCall();
|
||||
let links = await LinksCollection.find({}).fetch();
|
||||
// code above will not trigger reruns.
|
||||
});
|
||||
```
|
||||
You can make this example reactive by wrapping the `Meteor.users.find` call in a `Tracker.withComputation` call:
|
||||
|
||||
```javascript
|
||||
Tracker.autorun(async function (computation) {
|
||||
let asyncData = await someAsyncCall();
|
||||
let users =
|
||||
await Tracker.withComputation(computation, () => Meteor.users.find({}).fetch());
|
||||
// code above will trigger reruns.
|
||||
});
|
||||
```
|
||||
The `react-meteor-data` package uses `Tracker.withComputation` to make the `useTracker` accept async callbacks.
|
||||
More can be seen [here](https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data#maintaining-the-reactive-context)
|
||||
|
||||
### Using async callbacks in versions of Meteor prior to 2.10
|
||||
`Tracker.autorun` can accept an `async` callback function.
|
||||
However, the async call back function will only be dependent on reactive functions called prior to any called functions that return a promise.
|
||||
|
||||
Example 1 - autorun `example1()` **is not** dependent on reactive changes to the `Meteor.users` collection. Because it is dependent on nothing reactive it will run only once:
|
||||
```javascript
|
||||
Tracker.autorun(async function example1() {
|
||||
let asyncData = await asyncDataFunction();
|
||||
let asyncData = await asyncDataFunction();
|
||||
let users = Meteor.users.find({}).fetch();
|
||||
});
|
||||
```
|
||||
@@ -111,7 +141,7 @@ Example 2 - autorun `example2()` **is** dependent on reactive changes to the Me
|
||||
```javascript
|
||||
Tracker.autorun(async function example2() {
|
||||
let users = Meteor.users.find({}).fetch();
|
||||
let asyncData = await asyncDataFunction();
|
||||
let asyncData = await asyncDataFunction();
|
||||
});
|
||||
```
|
||||
{% apibox "Tracker.flush" %}
|
||||
|
||||
@@ -160,3 +160,4 @@ WebApp.addUpdatedNotifyHook(({arch, manifest, runtimeConfig}) => {
|
||||
|
||||
{% apibox "WebApp.addUpdatedNotifyHook" %}
|
||||
{% apibox "addUpdatedNotifyHookCallback(options)" %}
|
||||
{% apibox "main" %}
|
||||
@@ -5,6 +5,7 @@ edit_branch: 'devel'
|
||||
edit_path: 'guide'
|
||||
content_root: 'content'
|
||||
versions:
|
||||
- '2.12'
|
||||
- '2.11'
|
||||
- '2.10'
|
||||
- '2.9'
|
||||
|
||||
58
guide/source/2.12-migration.md
Normal file
58
guide/source/2.12-migration.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: Migrating to Meteor 2.12
|
||||
description: How to migrate your application to Meteor 2.12.
|
||||
---
|
||||
|
||||
Most of the new features in Meteor 2.12 are either applied directly behind the
|
||||
scenes (in a backwards compatible manner) or are opt-in. For a complete
|
||||
breakdown of the changes, please refer to the [changelog](http://docs.meteor.com/changelog.html).
|
||||
|
||||
The above being said, there are a few items that you should implement to
|
||||
have easier time in the future.
|
||||
|
||||
<h3 id="old-api-warning">Old API Warning</h3>
|
||||
|
||||
With our migration to the new async/await API, we have added a warning to the
|
||||
old API. In order to use it, before running your application, set the
|
||||
environment variable `WARN_WHEN_USING_OLD_API` to `true`. For example, you can
|
||||
run the folling command in your application directory:
|
||||
|
||||
```bash
|
||||
WARN_WHEN_USING_OLD_API=true meteor
|
||||
```
|
||||
|
||||
It will run your app and every time you use the old API, you will see a warning
|
||||
in your console. This will help you find the places in your code that need to
|
||||
be updated.
|
||||
|
||||
<h2 id="older-versions">Migrating from a version older than 2.11?</h2>
|
||||
|
||||
If you're migrating from a version of Meteor older than Meteor 2.11, there may
|
||||
be important considerations not listed in this guide.
|
||||
Please review the older migration guides for details:
|
||||
|
||||
* [Migrating to Meteor 2.11](2.11-migration.html) (from 2.10)
|
||||
* [Migrating to Meteor 2.10](2.10-migration.html) (from 2.9)
|
||||
* [Migrating to Meteor 2.9](2.9-migration.html) (from 2.8)
|
||||
* [Migrating to Meteor 2.8](2.8-migration.html) (from 2.7)
|
||||
* [Migrating to Meteor 2.7](2.7-migration.html) (from 2.6)
|
||||
* [Migrating to Meteor 2.6](2.6-migration.html) (from 2.5)
|
||||
* [Migrating to Meteor 2.5](2.5-migration.html) (from 2.4)
|
||||
* [Migrating to Meteor 2.4](2.4-migration.html) (from 2.3)
|
||||
* [Migrating to Meteor 2.3](2.3-migration.html) (from 2.2)
|
||||
* [Migrating to Meteor 2.2](2.2-migration.html) (from 2.0)
|
||||
* [Migrating to Meteor 2.0](2.0-migration.html) (from 1.12)
|
||||
* [Migrating to Meteor 1.12](1.12-migration.html) (from 1.11)
|
||||
* [Migrating to Meteor 1.11](1.11-migration.html) (from 1.10.2)
|
||||
* [Migrating to Meteor 1.10.2](1.10.2-migration.html) (from 1.10)
|
||||
* [Migrating to Meteor 1.10](1.10-migration.html) (from 1.9.3)
|
||||
* [Migrating to Meteor 1.9.3](1.9.3-migration.html) (from 1.9)
|
||||
* [Migrating to Meteor 1.9](1.9-migration.html) (from 1.8.3)
|
||||
* [Migrating to Meteor 1.8.3](1.8.3-migration.html) (from 1.8.2)
|
||||
* [Migrating to Meteor 1.8.2](1.8.2-migration.html) (from 1.8)
|
||||
* [Migrating to Meteor 1.8](1.8-migration.html) (from 1.7)
|
||||
* [Migrating to Meteor 1.7](1.7-migration.html) (from 1.6)
|
||||
* [Migrating to Meteor 1.6](1.6-migration.html) (from 1.5)
|
||||
* [Migrating to Meteor 1.5](1.5-migration.html) (from 1.4)
|
||||
* [Migrating to Meteor 1.4](1.4-migration.html) (from 1.3)
|
||||
* [Migrating to Meteor 1.3](1.3-migration.html) (from 1.2)
|
||||
@@ -365,7 +365,7 @@ Meteor.users.methods.updateMMR = new ValidatedMethod({
|
||||
});
|
||||
```
|
||||
|
||||
Note that while the Method is defined on the client, the actual secret logic is only accessible from the server. Keep in mind that code inside `if (Meteor.isServer)` blocks is still sent to the client, it is just not executed. So don't put any secret code in there.
|
||||
Note that while the Method is defined on the client, the actual secret logic is only accessible from the server and the code will **not** be included in the client bundle. Keep in mind that code inside `if (Meteor.isServer)` and `if (!this.isSimulation)` blocks is still sent to the client, it is just not executed. So don't put any secret code in there.
|
||||
|
||||
Secret API keys should never be stored in your source code at all, the next section will talk about how to handle them.
|
||||
|
||||
|
||||
2
meteor
2
meteor
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BUNDLE_VERSION=14.21.3.0
|
||||
BUNDLE_VERSION=14.21.3.2
|
||||
|
||||
|
||||
# OS Check. Put here because here is where we download the precompiled
|
||||
|
||||
@@ -14,6 +14,7 @@ npm install -g meteor
|
||||
|
||||
| NPM Package | Meteor Official Release |
|
||||
|-------------|-------------------------|
|
||||
| 2.12.0 | 2.12.0 |
|
||||
| 2.11.0 | 2.11.0 |
|
||||
| 2.10.0 | 2.10.0 |
|
||||
| 2.9.1 | 2.9.1 |
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const path = require('path');
|
||||
const os = require('os');
|
||||
|
||||
const METEOR_LATEST_VERSION = '2.11.0';
|
||||
const METEOR_LATEST_VERSION = '2.12.0';
|
||||
const sudoUser = process.env.SUDO_USER || '';
|
||||
function isRoot() {
|
||||
return process.getuid && process.getuid() === 0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "meteor",
|
||||
"version": "2.11.0",
|
||||
"version": "2.12.0",
|
||||
"description": "Install Meteor",
|
||||
"main": "install.js",
|
||||
"scripts": {
|
||||
|
||||
3
packages/accounts-base/accounts-base.d.ts
vendored
3
packages/accounts-base/accounts-base.d.ts
vendored
@@ -1,5 +1,6 @@
|
||||
import { Mongo } from 'meteor/mongo';
|
||||
import { Meteor } from 'meteor/meteor';
|
||||
import { Configuration } from 'meteor/service-configuration';
|
||||
|
||||
export interface URLS {
|
||||
resetPassword: (token: string) => string;
|
||||
@@ -71,6 +72,8 @@ export namespace Accounts {
|
||||
stop: () => void;
|
||||
};
|
||||
|
||||
var loginServiceConfiguration: Mongo.Collection<Configuration>
|
||||
|
||||
function loginServicesConfigured(): boolean;
|
||||
|
||||
function onPageLoadLogin(func: Function): void;
|
||||
|
||||
@@ -16,6 +16,7 @@ const VALID_CONFIG_KEYS = [
|
||||
'defaultFieldSelector',
|
||||
'loginTokenExpirationHours',
|
||||
'tokenSequenceLength',
|
||||
'collection',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -26,6 +27,8 @@ const VALID_CONFIG_KEYS = [
|
||||
* @param options {Object} an object with fields:
|
||||
* - connection {Object} Optional DDP connection to reuse.
|
||||
* - ddpUrl {String} Optional URL for creating a new DDP connection.
|
||||
* - collection {String|Mongo.Collection} The name of the Mongo.Collection
|
||||
* or the Mongo.Collection object to hold the users.
|
||||
*/
|
||||
export class AccountsCommon {
|
||||
constructor(options) {
|
||||
@@ -40,10 +43,7 @@ export class AccountsCommon {
|
||||
|
||||
// There is an allow call in accounts_server.js that restricts writes to
|
||||
// this collection.
|
||||
this.users = new Mongo.Collection('users', {
|
||||
_preventAutopublish: true,
|
||||
connection: this.connection,
|
||||
});
|
||||
this.users = this._initializeCollection(options || {});
|
||||
|
||||
// Callback exceptions are printed with Meteor._debug and ignored.
|
||||
this._onLoginHook = new Hook({
|
||||
@@ -81,6 +81,29 @@ export class AccountsCommon {
|
||||
this.LoginCancelledError.numericError = 0x8acdc2f;
|
||||
}
|
||||
|
||||
_initializeCollection(options) {
|
||||
if (options.collection && typeof options.collection !== 'string' && !(options.collection instanceof Mongo.Collection)) {
|
||||
throw new Meteor.Error('Collection parameter can be only of type string or "Mongo.Collection"');
|
||||
}
|
||||
|
||||
let collectionName = 'users';
|
||||
if (typeof options.collection === 'string') {
|
||||
collectionName = options.collection;
|
||||
}
|
||||
|
||||
let collection;
|
||||
if (options.collection instanceof Mongo.Collection) {
|
||||
collection = options.collection;
|
||||
} else {
|
||||
collection = new Mongo.Collection(collectionName, {
|
||||
_preventAutopublish: true,
|
||||
connection: this.connection,
|
||||
});
|
||||
}
|
||||
|
||||
return collection;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get the current user id, or `null` if no user is logged in. A reactive data source.
|
||||
* @locus Anywhere
|
||||
@@ -172,6 +195,8 @@ export class AccountsCommon {
|
||||
// - loginExpirationInDays {Number}
|
||||
// Number of days since login until a user is logged out (login token
|
||||
// expires).
|
||||
// - collection {String|Mongo.Collection}
|
||||
// A collection name or a Mongo.Collection object to hold the users.
|
||||
// - passwordResetTokenExpirationInDays {Number}
|
||||
// Number of days since password reset token creation until the
|
||||
// token cannt be used any longer (password reset token expires).
|
||||
@@ -198,6 +223,7 @@ export class AccountsCommon {
|
||||
* @param {Number} options.passwordEnrollTokenExpiration The number of milliseconds from when a link to set initial password is sent until token expires and user can't set password with the link anymore. If `passwordEnrollTokenExpirationInDays` is set, it takes precedent.
|
||||
* @param {Boolean} options.ambiguousErrorMessages Return ambiguous error messages from login failures to prevent user enumeration. Defaults to false.
|
||||
* @param {MongoFieldSpecifier} options.defaultFieldSelector To exclude by default large custom fields from `Meteor.user()` and `Meteor.findUserBy...()` functions when called without a field selector, and all `onLogin`, `onLoginFailure` and `onLogout` callbacks. Example: `Accounts.config({ defaultFieldSelector: { myBigArray: 0 }})`. Beware when using this. If, for instance, you do not include `email` when excluding the fields, you can have problems with functions like `forgotPassword` that will break because they won't have the required data available. It's recommend that you always keep the fields `_id`, `username`, and `email`.
|
||||
* @param {String|Mongo.Collection} options.collection A collection name or a Mongo.Collection object to hold the users.
|
||||
* @param {Number} options.loginTokenExpirationHours When using the package `accounts-2fa`, use this to set the amount of time a token sent is valid. As it's just a number, you can use, for example, 0.5 to make the token valid for just half hour. The default is 1 hour.
|
||||
* @param {Number} options.tokenSequenceLength When using the package `accounts-2fa`, use this to the size of the token sequence generated. The default is 6.
|
||||
*/
|
||||
@@ -251,11 +277,17 @@ export class AccountsCommon {
|
||||
VALID_CONFIG_KEYS.forEach(key => {
|
||||
if (key in options) {
|
||||
if (key in this._options) {
|
||||
throw new Meteor.Error(`Can't set \`${key}\` more than once`);
|
||||
if (key !== 'collection') {
|
||||
throw new Meteor.Error(`Can't set \`${key}\` more than once`);
|
||||
}
|
||||
}
|
||||
this._options[key] = options[key];
|
||||
}
|
||||
});
|
||||
|
||||
if (options.collection && options.collection !== this.users._name && options.collection !== this.users) {
|
||||
this.users = this._initializeCollection(options);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,8 +26,8 @@ export class AccountsServer extends AccountsCommon {
|
||||
// Note that this constructor is less likely to be instantiated multiple
|
||||
// times than the `AccountsClient` constructor, because a single server
|
||||
// can provide only one set of methods.
|
||||
constructor(server) {
|
||||
super();
|
||||
constructor(server, options) {
|
||||
super(options || {});
|
||||
|
||||
this._server = server || Meteor.server;
|
||||
// Set up the server's methods, as if by calling Meteor.methods.
|
||||
@@ -190,7 +190,7 @@ export class AccountsServer extends AccountsCommon {
|
||||
throw new Error("Can only call onCreateUser once");
|
||||
}
|
||||
|
||||
this._onCreateUserHook = func;
|
||||
this._onCreateUserHook = Meteor.wrapFn(func);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -564,7 +564,7 @@ export class AccountsServer extends AccountsCommon {
|
||||
|
||||
this._loginHandlers.push({
|
||||
name: name,
|
||||
handler: handler
|
||||
handler: Meteor.wrapFn(handler)
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { Mongo } from 'meteor/mongo';
|
||||
import { URL } from 'meteor/url';
|
||||
import { Meteor } from 'meteor/meteor';
|
||||
import { Accounts } from 'meteor/accounts-base';
|
||||
@@ -795,6 +796,56 @@ Tinytest.add(
|
||||
);
|
||||
|
||||
if(Meteor.isServer) {
|
||||
Tinytest.add('accounts - config - collection - mongo.collection', test => {
|
||||
const origCollection = Accounts.users;
|
||||
// create same user in two different collections - should pass
|
||||
const email = "test-collection@testdomain.com"
|
||||
|
||||
const collection0 = new Mongo.Collection('test1');
|
||||
|
||||
Accounts.config({
|
||||
collection: collection0,
|
||||
})
|
||||
const uid0 = Accounts.createUser({email})
|
||||
Meteor.users.remove(uid0);
|
||||
|
||||
const collection1 = new Mongo.Collection('test2');
|
||||
Accounts.config({
|
||||
collection: collection1,
|
||||
})
|
||||
const uid1 = Accounts.createUser({email})
|
||||
Meteor.users.remove(uid1);
|
||||
|
||||
test.notEqual(uid0, uid1);
|
||||
|
||||
Accounts.config({
|
||||
collection: origCollection,
|
||||
});
|
||||
});
|
||||
Tinytest.add('accounts - config - collection - name', test => {
|
||||
const origCollection = Accounts.users;
|
||||
// create same user in two different collections - should pass
|
||||
const email = "test-collection@testdomain.com"
|
||||
|
||||
Accounts.config({
|
||||
collection: 'collection0',
|
||||
})
|
||||
const uid0 = Accounts.createUser({email})
|
||||
Meteor.users.remove(uid0);
|
||||
|
||||
Accounts.config({
|
||||
collection: 'collection1',
|
||||
})
|
||||
const uid1 = Accounts.createUser({email})
|
||||
Meteor.users.remove(uid1);
|
||||
|
||||
test.notEqual(uid0, uid1);
|
||||
|
||||
Accounts.config({
|
||||
collection: origCollection,
|
||||
});
|
||||
});
|
||||
|
||||
Tinytest.add(
|
||||
'accounts - make sure that extra params to accounts urls are added',
|
||||
test => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: 'A user account system',
|
||||
version: '2.2.7',
|
||||
version: '2.2.8',
|
||||
});
|
||||
|
||||
Package.onUse(api => {
|
||||
|
||||
@@ -80,7 +80,7 @@ BCp.processOneFileForTarget = function (inputFile, source) {
|
||||
// compilation, give it the following file extension: .es5.js
|
||||
! excludedFileExtensionPattern.test(inputFilePath)) {
|
||||
|
||||
const features = { ...this.extraFeatures };
|
||||
const features = Object.assign({}, this.extraFeatures);
|
||||
const arch = inputFile.getArch();
|
||||
|
||||
if (arch.startsWith("os.")) {
|
||||
@@ -122,7 +122,7 @@ BCp.processOneFileForTarget = function (inputFile, source) {
|
||||
this.inferExtraBabelOptions(
|
||||
inputFile,
|
||||
babelOptions,
|
||||
cacheOptions.cacheDeps,
|
||||
cacheOptions.cacheDeps
|
||||
);
|
||||
|
||||
babelOptions.sourceMaps = true;
|
||||
|
||||
@@ -26,7 +26,7 @@ Babel = {
|
||||
return getMeteorBabel().compile(
|
||||
source,
|
||||
babelOptions || getDefaultOptions(),
|
||||
cacheOptions,
|
||||
cacheOptions
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Package.describe({
|
||||
name: "babel-compiler",
|
||||
summary: "Parser/transpiler for ECMAScript 2015+ syntax",
|
||||
version: '7.10.3',
|
||||
version: '7.10.4',
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
|
||||
@@ -50,7 +50,7 @@ var keywords = {
|
||||
// If false, we set the X-Content-Type-Options header to 'nosniff'.
|
||||
var contentSniffingAllowed = false;
|
||||
|
||||
const BrowserPolicy = require("meteor/browser-policy-common").BrowserPolicy;
|
||||
var BrowserPolicy = require("meteor/browser-policy-common").BrowserPolicy;
|
||||
BrowserPolicy.content = {};
|
||||
|
||||
var parseCsp = function (csp) {
|
||||
@@ -260,12 +260,12 @@ var resources = [
|
||||
{ methodResource: "Frame", directive: "frame-src" },
|
||||
{ methodResource: "FrameAncestors", directive: "frame-ancestors" }
|
||||
];
|
||||
_.each(resources,
function (resource) {
|
||||
var directive = resource.directive;
|
||||
var methodResource = resource.methodResource;
|
||||
_.each(resources, function (resource) {
|
||||
var directive = resource.directive;
|
||||
var methodResource = resource.methodResource;
|
||||
var allowMethodName = "allow" + methodResource + "Origin";
|
||||
var disallowMethodName = "disallow" + methodResource;
|
||||
var allowDataMethodName = "allow" + methodResource + "DataUrl";
|
||||
var allowDataMethodName = "allow" + methodResource + "DataUrl";
|
||||
var allowBlobMethodName = "allow" + methodResource + "BlobUrl";
|
||||
var allowSelfMethodName = "allow" + methodResource + "SameOrigin";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: "Configure content security policies",
|
||||
version: "1.1.1"
|
||||
version: "1.1.2"
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var defaultXFrameOptions = "SAMEORIGIN";
|
||||
var xFrameOptions = defaultXFrameOptions;
|
||||
|
||||
const BrowserPolicy = require("meteor/browser-policy-common").BrowserPolicy;
|
||||
var BrowserPolicy = require("meteor/browser-policy-common").BrowserPolicy;
|
||||
BrowserPolicy.framing = {};
|
||||
|
||||
Object.assign(BrowserPolicy.framing, {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: "Restrict which websites can frame your app",
|
||||
version: '1.1.1'
|
||||
version: '1.1.2'
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: "Configure security policies enforced by the browser",
|
||||
version: '1.1.1'
|
||||
version: '1.1.2'
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
@@ -12,5 +12,5 @@ Package.onUse(function (api) {
|
||||
|
||||
Package.onTest(function (api) {
|
||||
api.use(["tinytest", "browser-policy", "ejson"], "server");
|
||||
api.addFiles("browser-policy-test.js", "server");
|
||||
api.addFiles("browser-policy-tests.js", "server");
|
||||
});
|
||||
|
||||
@@ -49,6 +49,11 @@ export class Hook {
|
||||
this.bindEnvironment = false;
|
||||
}
|
||||
|
||||
this.wrapAsync = true;
|
||||
if (options.wrapAsync === false) {
|
||||
this.wrapAsync = false;
|
||||
}
|
||||
|
||||
if (options.exceptionHandler) {
|
||||
this.exceptionHandler = options.exceptionHandler;
|
||||
} else if (options.debugPrintExceptions) {
|
||||
@@ -73,6 +78,10 @@ export class Hook {
|
||||
callback = dontBindEnvironment(callback, exceptionHandler);
|
||||
}
|
||||
|
||||
if (this.wrapAsync) {
|
||||
callback = Meteor.wrapFn(callback);
|
||||
}
|
||||
|
||||
const id = this.nextCallbackId++;
|
||||
this.callbacks[id] = callback;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: "Register callbacks on a hook",
|
||||
version: '1.5.0'
|
||||
version: '1.5.1'
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
const {
|
||||
Slot,
|
||||
bind,
|
||||
noContext,
|
||||
setTimeout,
|
||||
asyncFromGen,
|
||||
} = require("@wry/context");
|
||||
const context = require("@wry/context");
|
||||
|
||||
Object.assign(exports, {
|
||||
Slot,
|
||||
bind,
|
||||
noContext,
|
||||
setTimeout,
|
||||
asyncFromGen,
|
||||
Slot: context.Slot,
|
||||
bind: context.bind,
|
||||
noContext: context.noContext,
|
||||
setTimeout: context.setTimeout,
|
||||
asyncFromGen: context.asyncFromGen,
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: "context",
|
||||
version: "0.5.0",
|
||||
version: "0.5.1",
|
||||
summary: "Manage contextual information without passing objects around",
|
||||
documentation: "README.md"
|
||||
});
|
||||
|
||||
@@ -10,14 +10,29 @@ let errorMessage = (rateLimitResult) => {
|
||||
'trying again.';
|
||||
};
|
||||
|
||||
// Store rule specific error messages.
|
||||
const errorMessageByRule = new Map();
|
||||
|
||||
const rateLimiter = new RateLimiter();
|
||||
|
||||
DDPRateLimiter.getErrorMessage = (rateLimitResult) => {
|
||||
// If there is a specific error message for this rule, use it.
|
||||
if (errorMessageByRule.has(rateLimitResult.ruleId)) {
|
||||
const message = errorMessageByRule.get(rateLimitResult.ruleId);
|
||||
// if it's a function, we need to call it
|
||||
if (typeof message === 'function') {
|
||||
// call the function with the rateLimitResult
|
||||
return message(rateLimitResult);
|
||||
}
|
||||
// otherwise, just return the string
|
||||
return message;
|
||||
}
|
||||
|
||||
// Otherwise, use the default error message.
|
||||
if (typeof errorMessage === 'function') {
|
||||
return errorMessage(rateLimitResult);
|
||||
} else {
|
||||
return errorMessage;
|
||||
}
|
||||
return errorMessage;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -33,6 +48,20 @@ DDPRateLimiter.setErrorMessage = (message) => {
|
||||
errorMessage = message;
|
||||
};
|
||||
|
||||
/**
|
||||
* @summary Set error message text when method or subscription rate limit
|
||||
* exceeded for a specific rule.
|
||||
* @param {string} ruleId The ruleId returned from `addRule`
|
||||
* @param {string|function} message Functions are passed in an object with a
|
||||
* `timeToReset` field that specifies the number of milliseconds until the next
|
||||
* method or subscription is allowed to run. The function must return a string
|
||||
* of the error message.
|
||||
* @locus Server
|
||||
*/
|
||||
DDPRateLimiter.setErrorMessageOnRule = (ruleId, message) => {
|
||||
errorMessageByRule.set(ruleId, message);
|
||||
};
|
||||
|
||||
/**
|
||||
* @summary
|
||||
* Add a rule that matches against a stream of events describing method or
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: 'ddp-rate-limiter',
|
||||
version: '1.1.1',
|
||||
version: '1.2.0',
|
||||
// Brief, one-line summary of the package.
|
||||
summary: 'The DDPRateLimiter allows users to add rate limits to DDP' +
|
||||
' methods and subscriptions.',
|
||||
|
||||
24
packages/ddp-server/.npm/package/npm-shrinkwrap.json
generated
24
packages/ddp-server/.npm/package/npm-shrinkwrap.json
generated
@@ -2,14 +2,14 @@
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"faye-websocket": {
|
||||
"version": "0.11.3",
|
||||
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
|
||||
"integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA=="
|
||||
"version": "0.11.4",
|
||||
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
|
||||
"integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g=="
|
||||
},
|
||||
"http-parser-js": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz",
|
||||
"integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg=="
|
||||
"version": "0.5.8",
|
||||
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
|
||||
"integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
|
||||
},
|
||||
"permessage-deflate": {
|
||||
"version": "0.1.7",
|
||||
@@ -22,14 +22,14 @@
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
||||
},
|
||||
"sockjs": {
|
||||
"version": "0.3.21",
|
||||
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz",
|
||||
"integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw=="
|
||||
"version": "0.3.24",
|
||||
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
|
||||
"integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ=="
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
|
||||
},
|
||||
"websocket-driver": {
|
||||
"version": "0.7.4",
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
Package.describe({
|
||||
summary: "Meteor's latency-compensated distributed data server",
|
||||
version: '2.6.0',
|
||||
version: '2.6.1',
|
||||
documentation: null
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
"permessage-deflate": "0.1.7",
|
||||
sockjs: "0.3.21"
|
||||
sockjs: "0.3.24"
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Package.describe({
|
||||
version: '0.1.1',
|
||||
version: '0.1.2',
|
||||
summary: 'Show build errors in client when using HMR',
|
||||
documentation: 'README.md',
|
||||
devOnly: true
|
||||
@@ -7,7 +7,7 @@ Package.describe({
|
||||
|
||||
Package.onUse(function (api) {
|
||||
api.use([
|
||||
'modules'
|
||||
'ecmascript'
|
||||
]);
|
||||
api.export('DevErrorOverlay', 'client');
|
||||
api.addFiles('client.js', 'modern');
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// modules, for use in client.js and cache.js.
|
||||
var versions = __DYNAMIC_VERSIONS__;
|
||||
|
||||
const METEOR_PREFIX = '/node_modules/meteor/';
|
||||
var METEOR_PREFIX = '/node_modules/meteor/';
|
||||
|
||||
exports.get = function (id) {
|
||||
var tree = versions;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: "dynamic-import",
|
||||
version: "0.7.2",
|
||||
version: "0.7.3",
|
||||
summary: "Runtime support for Meteor 1.5 dynamic import(...) syntax",
|
||||
documentation: "README.md"
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: "ecmascript-runtime",
|
||||
version: "0.8.0",
|
||||
version: '0.8.1',
|
||||
summary: "Polyfills for new ECMAScript 2015 APIs like Map and Set",
|
||||
git: "https://github.com/meteor/ecmascript-runtime",
|
||||
documentation: "README.md"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: 'ecmascript',
|
||||
version: '0.16.6',
|
||||
version: '0.16.7',
|
||||
summary: 'Compiler plugin that supports ES2015+ in all .js files',
|
||||
documentation: 'README.md',
|
||||
});
|
||||
@@ -40,5 +40,5 @@ Package.onTest(function(api) {
|
||||
api.addFiles('bare-test-file.js', ['client', 'server'], {
|
||||
bare: true,
|
||||
});
|
||||
api.addFiles('runtime-tests-client.js', ['client', 'web.browser.legacy']);
|
||||
api.addFiles('runtime-client-tests.js', ['client', 'web.browser.legacy']);
|
||||
});
|
||||
|
||||
4
packages/email/email.d.ts
vendored
4
packages/email/email.d.ts
vendored
@@ -1,5 +1,5 @@
|
||||
import { SendMailOptions } from 'nodemailer';
|
||||
|
||||
|
||||
export namespace Email {
|
||||
/**
|
||||
* ExtraMailOptions is intentionally left empty here, but can be overridden in
|
||||
@@ -11,7 +11,7 @@ export namespace Email {
|
||||
interface ExtraMailOptions {}
|
||||
type EmailOptions = { mailComposer: MailComposer } | (ExtraMailOptions & SendMailOptions)
|
||||
|
||||
interface CustomEmailOptions extends EmailOptions {
|
||||
type CustomEmailOptions = EmailOptions & {
|
||||
packageSettings?: unknown;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: 'Send email messages',
|
||||
version: '2.2.4',
|
||||
version: '2.2.5',
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
// TODO: add an api to Reify to update cached exports for a module
|
||||
const ReifyEntry = require('/node_modules/meteor/modules/node_modules/@meteorjs/reify/lib/runtime/entry.js')
|
||||
var ReifyEntry = require('/node_modules/meteor/modules/node_modules/@meteorjs/reify/lib/runtime/entry.js')
|
||||
|
||||
const SOURCE_URL_PREFIX = "meteor://\ud83d\udcbbapp";
|
||||
var SOURCE_URL_PREFIX = "meteor://\ud83d\udcbbapp";
|
||||
|
||||
let appliedChangeSets = [];
|
||||
let removeErrorMessage = null;
|
||||
var appliedChangeSets = [];
|
||||
var removeErrorMessage = null;
|
||||
|
||||
const arch = Meteor.isCordova ? "web.cordova" :
|
||||
var arch = Meteor.isCordova ? "web.cordova" :
|
||||
Meteor.isModern ? "web.browser" : "web.browser.legacy";
|
||||
|
||||
const initialVersions = __meteor_runtime_config__.autoupdate.versions[arch];
|
||||
let lastUpdated = initialVersions.versionHmr;
|
||||
const hmrSecret = __meteor_runtime_config__._hmrSecret;
|
||||
var initialVersions = __meteor_runtime_config__.autoupdate.versions[arch];
|
||||
var lastUpdated = initialVersions.versionHmr;
|
||||
var hmrSecret = __meteor_runtime_config__._hmrSecret;
|
||||
|
||||
// Cordova doesn't need the hmrSecret, though cordova is also unable to tell
|
||||
// if Meteor needs to be restarted to enable HMR;
|
||||
const enabled = Meteor.isCordova || !!hmrSecret;
|
||||
var enabled = Meteor.isCordova || !!hmrSecret;
|
||||
|
||||
if (!enabled) {
|
||||
console.log('Restart Meteor to enable HMR');
|
||||
}
|
||||
|
||||
const imported = Object.create(null);
|
||||
const importedBy = Object.create(null);
|
||||
var imported = Object.create(null);
|
||||
var importedBy = Object.create(null);
|
||||
|
||||
if (module._onRequire) {
|
||||
module._onRequire({
|
||||
@@ -44,10 +44,10 @@ if (module._onRequire) {
|
||||
|
||||
// On web, we can reload the page any time to get the new version. On cordova,
|
||||
// we have to wait until Reload._onMigrate is called
|
||||
let hotCodePushReady = arch !== 'web.cordova';
|
||||
var hotCodePushReady = arch !== 'web.cordova';
|
||||
|
||||
let useHotCodePush = false;
|
||||
let forceReload = function () {
|
||||
var useHotCodePush = false;
|
||||
var forceReload = function () {
|
||||
useHotCodePush = true;
|
||||
// Wait until Reload package has been loaded
|
||||
Meteor.startup(function () {
|
||||
@@ -60,7 +60,7 @@ let forceReload = function () {
|
||||
// Once an eager update fails, we stop processing future updates since they
|
||||
// might depend on the failed update. This gets reset when we re-try applying
|
||||
// the changes as non-eager updates.
|
||||
let applyEagerUpdates = true;
|
||||
var applyEagerUpdates = true;
|
||||
|
||||
function handleMessage(message) {
|
||||
if (message.type === 'register-failed') {
|
||||
@@ -103,7 +103,7 @@ function handleMessage(message) {
|
||||
applyEagerUpdates = true;
|
||||
}
|
||||
|
||||
const hasUnreloadable = message.changeSets.find(function (changeSet) {
|
||||
var hasUnreloadable = message.changeSets.find(function (changeSet) {
|
||||
return !changeSet.reloadable;
|
||||
});
|
||||
|
||||
@@ -128,10 +128,10 @@ function handleMessage(message) {
|
||||
// In case the user changed how a module works with HMR
|
||||
// in one of the earlier change sets, we want to apply each
|
||||
// change set one at a time in order.
|
||||
const succeeded = message.changeSets.filter(function (changeSet) {
|
||||
var succeeded = message.changeSets.filter(function (changeSet) {
|
||||
return !appliedChangeSets.includes(changeSet.id)
|
||||
}).every(function (changeSet) {
|
||||
const applied = applyChangeset(changeSet, message.eager);
|
||||
var applied = applyChangeset(changeSet, message.eager);
|
||||
|
||||
// We don't record if a module is unreplaceable
|
||||
// during an eager update so we can retry and
|
||||
@@ -162,9 +162,9 @@ function handleMessage(message) {
|
||||
}
|
||||
}
|
||||
|
||||
let socket;
|
||||
let disconnected = false;
|
||||
let pendingMessages = [];
|
||||
var socket;
|
||||
var disconnected = false;
|
||||
var pendingMessages = [];
|
||||
|
||||
function send(message) {
|
||||
if (socket) {
|
||||
@@ -183,9 +183,9 @@ function connect() {
|
||||
|
||||
// If we've successfully connected and then was disconnected, we avoid showing
|
||||
// any more connection errors in the console until we've connected again
|
||||
let logDisconnect = !disconnected;
|
||||
let wsUrl = Meteor.absoluteUrl('__meteor__hmr__/websocket');
|
||||
const protocol = wsUrl.startsWith('https://') ? 'wss://' : 'ws://';
|
||||
var logDisconnect = !disconnected;
|
||||
var wsUrl = Meteor.absoluteUrl('__meteor__hmr__/websocket');
|
||||
var protocol = wsUrl.startsWith('https://') ? 'wss://' : 'ws://';
|
||||
wsUrl = wsUrl.replace(/^.+\/\//, protocol);
|
||||
socket = new WebSocket(wsUrl);
|
||||
|
||||
@@ -212,7 +212,7 @@ function connect() {
|
||||
appId: __meteor_runtime_config__.appId,
|
||||
}));
|
||||
|
||||
const toSend = pendingMessages.slice();
|
||||
var toSend = pendingMessages.slice();
|
||||
pendingMessages = [];
|
||||
|
||||
toSend.forEach(function (message) {
|
||||
@@ -240,8 +240,8 @@ function requestChanges() {
|
||||
}
|
||||
|
||||
function walkTree(pathParts, tree) {
|
||||
const part = pathParts.shift();
|
||||
const _module = tree.contents[part];
|
||||
var part = pathParts.shift();
|
||||
var _module = tree.contents[part];
|
||||
|
||||
if (!_module) {
|
||||
console.log('HMR: file does not exist', part, pathParts, _module, tree);
|
||||
@@ -284,7 +284,7 @@ function createModuleContent (code, map) {
|
||||
function replaceFileContent(file, contents) {
|
||||
// TODO: to replace content in packages, we need an eval function that runs
|
||||
// within the package scope, like dynamic imports does.
|
||||
const moduleFunction = createModuleContent(contents.code, contents.map, file.module.id);
|
||||
var moduleFunction = createModuleContent(contents.code, contents.map, file.module.id);
|
||||
|
||||
file.contents = moduleFunction;
|
||||
}
|
||||
@@ -296,15 +296,15 @@ function checkModuleAcceptsUpdate(moduleId, checked) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const file = findFile(moduleId);
|
||||
const moduleHot = file.module.hot;
|
||||
const moduleAccepts = moduleHot ? moduleHot._canAcceptUpdate() : false;
|
||||
var file = findFile(moduleId);
|
||||
var moduleHot = file.module.hot;
|
||||
var moduleAccepts = moduleHot ? moduleHot._canAcceptUpdate() : false;
|
||||
|
||||
if (moduleAccepts !== null) {
|
||||
return moduleAccepts;
|
||||
}
|
||||
|
||||
let accepts = null;
|
||||
var accepts = null;
|
||||
|
||||
// The module did not accept the update. If the update is accepted depends
|
||||
// on if the modules that imported this module accept the update.
|
||||
@@ -321,7 +321,7 @@ function checkModuleAcceptsUpdate(moduleId, checked) {
|
||||
return;
|
||||
}
|
||||
|
||||
const depResult = checkModuleAcceptsUpdate(depId, checked);
|
||||
var depResult = checkModuleAcceptsUpdate(depId, checked);
|
||||
|
||||
if (accepts !== false) {
|
||||
accepts = depResult;
|
||||
@@ -333,11 +333,11 @@ function checkModuleAcceptsUpdate(moduleId, checked) {
|
||||
|
||||
function addFiles(addedFiles) {
|
||||
addedFiles.forEach(function (file) {
|
||||
const tree = {};
|
||||
const segments = file.path.split('/').slice(1);
|
||||
const fileName = segments.pop();
|
||||
var tree = {};
|
||||
var segments = file.path.split('/').slice(1);
|
||||
var fileName = segments.pop();
|
||||
|
||||
let previous = tree;
|
||||
var previous = tree;
|
||||
segments.forEach(function (segment) {
|
||||
previous[segment] = previous[segment] || {}
|
||||
previous = previous[segment]
|
||||
@@ -353,12 +353,12 @@ function addFiles(addedFiles) {
|
||||
}
|
||||
|
||||
module.constructor.prototype._reset = function (id) {
|
||||
const moduleId = id || this.id;
|
||||
const file = findFile(moduleId);
|
||||
var moduleId = id || this.id;
|
||||
var file = findFile(moduleId);
|
||||
|
||||
const hotState = file.module._hotState;
|
||||
var hotState = file.module._hotState;
|
||||
|
||||
const hotData = {};
|
||||
var hotData = {};
|
||||
hotState._disposeHandlers.forEach(function (cb) {
|
||||
cb(hotData);
|
||||
});
|
||||
@@ -371,7 +371,7 @@ module.constructor.prototype._reset = function (id) {
|
||||
// Clear cached exports
|
||||
// TODO: check how this affects live bindings for ecmascript modules
|
||||
delete file.module.exports;
|
||||
const entry = ReifyEntry.getOrCreate(moduleId);
|
||||
var entry = ReifyEntry.getOrCreate(moduleId);
|
||||
entry.getters = {};
|
||||
entry.setters = {};
|
||||
entry.module = null;
|
||||
@@ -390,10 +390,10 @@ module.constructor.prototype._reset = function (id) {
|
||||
}
|
||||
|
||||
module.constructor.prototype._replaceModule = function (id, contents) {
|
||||
const moduleId = id || this.id;
|
||||
const root = this._getRoot();
|
||||
var moduleId = id || this.id;
|
||||
var root = this._getRoot();
|
||||
|
||||
let file;
|
||||
var file;
|
||||
try {
|
||||
file = walkTree(moduleId.split('/').slice(1), root);
|
||||
} catch (e) {
|
||||
@@ -418,21 +418,21 @@ module.constructor.prototype._replaceModule = function (id, contents) {
|
||||
}
|
||||
|
||||
function applyChangeset(options) {
|
||||
const changedFiles = options.changedFiles;
|
||||
const addedFiles = options.addedFiles;
|
||||
var changedFiles = options.changedFiles;
|
||||
var addedFiles = options.addedFiles;
|
||||
|
||||
let canApply = true;
|
||||
let toRerun = new Set();
|
||||
var canApply = true;
|
||||
var toRerun = new Set();
|
||||
|
||||
changedFiles.forEach(function (changed) {
|
||||
const path = changed.path;
|
||||
const file = findFile(path);
|
||||
var path = changed.path;
|
||||
var file = findFile(path);
|
||||
|
||||
// Check if the file has been imported. If it hasn't been,
|
||||
// we can assume update to it can be accepted
|
||||
if (file.module.exports) {
|
||||
const checked = new Set();
|
||||
const accepts = checkModuleAcceptsUpdate(path, checked);
|
||||
var checked = new Set();
|
||||
var accepts = checkModuleAcceptsUpdate(path, checked);
|
||||
|
||||
if (canApply) {
|
||||
canApply = accepts;
|
||||
@@ -456,7 +456,7 @@ function applyChangeset(options) {
|
||||
}
|
||||
|
||||
toRerun.forEach(function (moduleId) {
|
||||
const file = findFile(moduleId);
|
||||
var file = findFile(moduleId);
|
||||
// clear module caches and hot state
|
||||
file.module._reset();
|
||||
file.module.loaded = false;
|
||||
@@ -470,13 +470,13 @@ function applyChangeset(options) {
|
||||
console.error('HMR: Error while applying changes:', error);
|
||||
}
|
||||
|
||||
const updateCount = changedFiles.length + addedFiles.length;
|
||||
var updateCount = changedFiles.length + addedFiles.length;
|
||||
console.log('HMR: updated ' + updateCount + ' ' + (updateCount === 1 ? 'file' : 'files'));
|
||||
return true;
|
||||
}
|
||||
|
||||
let nonRefreshableVersion = initialVersions.versionNonRefreshable;
|
||||
let replaceableVersion = initialVersions.versionReplaceable;
|
||||
var nonRefreshableVersion = initialVersions.versionNonRefreshable;
|
||||
var replaceableVersion = initialVersions.versionReplaceable;
|
||||
|
||||
Meteor.startup(function () {
|
||||
if (!enabled) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const meteorInstall = Package['modules-runtime'].meteorInstall;
|
||||
var meteorInstall = Package['modules-runtime'].meteorInstall;
|
||||
|
||||
/**
|
||||
* @summary The Hot API used to configure HMR
|
||||
@@ -17,8 +17,8 @@ Object.defineProperty(meteorInstall.Module.prototype, "hot", {
|
||||
};
|
||||
}
|
||||
|
||||
let hotState = this._hotState;
|
||||
let module = this;
|
||||
var hotState = this._hotState;
|
||||
var module = this;
|
||||
|
||||
return {
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: 'hot-module-replacement',
|
||||
version: '0.5.2',
|
||||
version: '0.5.3',
|
||||
summary: 'Update code in development without reloading the page',
|
||||
documentation: 'README.md',
|
||||
debugOnly: true,
|
||||
@@ -16,7 +16,6 @@ Package.onUse(function(api) {
|
||||
// Provides polyfills needed by Meteor.absoluteUrl in legacy browsers
|
||||
api.use('ecmascript-runtime-client', { weak: true });
|
||||
|
||||
api.use('dev-error-overlay', { weak: true });
|
||||
api.imply('modules-runtime-hot@0.13.0');
|
||||
api.addFiles(['./hot-api.js', './client.js'], 'client');
|
||||
api.addFiles('./server.js', 'server');
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: 'The Meteor command-line tool',
|
||||
version: '2.11.0',
|
||||
version: '2.12.0',
|
||||
});
|
||||
|
||||
Package.includeTool();
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
const getAslStore = () => (Meteor.isServer && global?.asyncLocalStorage?.getStore()) || {};
|
||||
const getAslStore = () => {
|
||||
if (Meteor.isServer && global.asyncLocalStorage) {
|
||||
return global.asyncLocalStorage.getStore();
|
||||
}
|
||||
|
||||
return {};
|
||||
};
|
||||
const getValueFromAslStore = key => getAslStore()[key];
|
||||
const updateAslStore = (key, value) => getAslStore()[key] = value;
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ EVp._set = function (context) {
|
||||
};
|
||||
|
||||
EVp._setNewContextAndGetCurrent = function (value) {
|
||||
const saved = currentValues[this.slot];
|
||||
var saved = currentValues[this.slot];
|
||||
this._set(value);
|
||||
return saved;
|
||||
};
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
var Fiber = Npm.require('fibers');
|
||||
|
||||
var nextSlot = 0;
|
||||
var callAsyncMethodRunning = false;
|
||||
|
||||
Meteor._nodeCodeMustBeInFiber = function () {
|
||||
if (!Fiber.current) {
|
||||
@@ -75,7 +76,7 @@ EVp.withValue = function (value, func) {
|
||||
var saved = currentValues[this.slot];
|
||||
try {
|
||||
currentValues[this.slot] = value;
|
||||
return func();
|
||||
return Meteor.wrapFn(func)();
|
||||
} finally {
|
||||
currentValues[this.slot] = saved;
|
||||
}
|
||||
@@ -106,6 +107,15 @@ EVp._setNewContextAndGetCurrent = function (value) {
|
||||
return saved;
|
||||
};
|
||||
|
||||
EVp._isCallAsyncMethodRunning = function () {
|
||||
return callAsyncMethodRunning;
|
||||
};
|
||||
|
||||
EVp._setCallAsyncMethodRunning = function (value) {
|
||||
callAsyncMethodRunning = value;
|
||||
};
|
||||
|
||||
|
||||
// Meteor application code is always supposed to be run inside a
|
||||
// fiber. bindEnvironment ensures that the function it wraps is run from
|
||||
// inside a fiber and ensures it sees the values of Meteor environment
|
||||
|
||||
@@ -80,11 +80,15 @@ Meteor._delete = function (obj /*, arguments */) {
|
||||
* @param errorFirst - If the callback follows the errorFirst style
|
||||
* @returns {function(...[*]): Promise<unknown>}
|
||||
*/
|
||||
Meteor.promisify = function (fn, context, errorFirst = true) {
|
||||
return function (...fnArgs) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const callback = Meteor.bindEnvironment((error, result) => {
|
||||
let _error = error, _result = result;
|
||||
Meteor.promisify = function (fn, context, errorFirst) {
|
||||
if (errorFirst === undefined) {
|
||||
errorFirst = true;
|
||||
}
|
||||
|
||||
return function () {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var callback = Meteor.bindEnvironment(function (error, result) {
|
||||
var _error = error, _result = result;
|
||||
if (!errorFirst) {
|
||||
_error = result;
|
||||
_result = error;
|
||||
@@ -97,7 +101,10 @@ Meteor.promisify = function (fn, context, errorFirst = true) {
|
||||
resolve(_result);
|
||||
});
|
||||
|
||||
const filteredArgs = [...fnArgs, callback].filter(i => i !== undefined);
|
||||
var filteredArgs = Array.prototype.slice.call(arguments)
|
||||
.filter(function (i) { return i !== undefined; });
|
||||
filteredArgs.push(callback);
|
||||
|
||||
return fn.apply(context || this, filteredArgs);
|
||||
});
|
||||
};
|
||||
@@ -156,6 +163,25 @@ Meteor.wrapAsync = function (fn, context) {
|
||||
};
|
||||
};
|
||||
|
||||
Meteor.wrapFn = function (fn) {
|
||||
if (!fn || typeof fn !== 'function') {
|
||||
throw new Meteor.Error("Expected to receive function to wrap");
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
return fn;
|
||||
}
|
||||
|
||||
return function() {
|
||||
var ret = fn.apply(this, arguments);
|
||||
if (ret && typeof ret.then === 'function') {
|
||||
return Promise.await(ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
|
||||
// Sets child's prototype to a new object whose prototype is parent's
|
||||
// prototype. Used as:
|
||||
// Meteor._inherits(ClassB, ClassA).
|
||||
|
||||
3
packages/meteor/meteor.d.ts
vendored
3
packages/meteor/meteor.d.ts
vendored
@@ -486,7 +486,10 @@ export namespace Meteor {
|
||||
/** Global props **/
|
||||
/** True if running in development environment. */
|
||||
var isDevelopment: boolean;
|
||||
var isModern: boolean;
|
||||
var gitCommitHash: string | undefined;
|
||||
var isTest: boolean;
|
||||
var isAppTest: boolean;
|
||||
var isPackageTest: boolean;
|
||||
/** Global props **/
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Package.describe({
|
||||
summary: "Core Meteor environment",
|
||||
version: '1.11.1',
|
||||
version: '1.11.2',
|
||||
});
|
||||
|
||||
Package.registerBuildPlugin({
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Meteor.startup = function startup(callback) {
|
||||
callback = Meteor.wrapFn(callback);
|
||||
if (process.env.METEOR_PROFILE) {
|
||||
// Create a temporary error to capture the current stack trace.
|
||||
var error = new Error("Meteor.startup");
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
|
||||
|
||||
var TEST_METADATA_STR;
|
||||
if (Meteor.isClient) {
|
||||
TEST_METADATA_STR = meteorEnv.TEST_METADATA;
|
||||
@@ -10,8 +12,32 @@ var testDriverPackageName = TEST_METADATA.driverPackage;
|
||||
|
||||
// Note that if we are in test-packages mode neither of these will be set,
|
||||
// but we will have a test driver package
|
||||
/**
|
||||
*@memberof Meteor
|
||||
* @summary Boolean variable. True when running unit tests (false if running
|
||||
* tests in full app mode).
|
||||
* @locus Anywhere
|
||||
* @static
|
||||
* @type {Boolean}
|
||||
*/
|
||||
Meteor.isTest = !!TEST_METADATA.isTest;
|
||||
|
||||
/**
|
||||
*@memberof Meteor
|
||||
* @summary Boolean variable. True if running tests against your application i.e `meteor test --full-app`.
|
||||
* @locus Anywhere
|
||||
* @static
|
||||
* @type {Boolean}
|
||||
*/
|
||||
Meteor.isAppTest = !!TEST_METADATA.isAppTest;
|
||||
|
||||
/**
|
||||
*@memberof Meteor
|
||||
* @summary Boolean variable. True if running tests against a Meteor package.
|
||||
* @locus Anywhere
|
||||
* @static
|
||||
* @type {Boolean}
|
||||
*/
|
||||
Meteor.isPackageTest = !!testDriverPackageName && !Meteor.isTest && !Meteor.isAppTest;
|
||||
|
||||
if (typeof testDriverPackageName === "string") {
|
||||
|
||||
1296
packages/minifier-css/.npm/package/npm-shrinkwrap.json
generated
1296
packages/minifier-css/.npm/package/npm-shrinkwrap.json
generated
File diff suppressed because it is too large
Load Diff
@@ -32,7 +32,7 @@ const TEST_CASES = [
|
||||
'a {\n\
|
||||
font:12px \'Helvetica\',"Arial",\'Nautica\';\n\
|
||||
background:url("/some/nice/picture.png");\n}',
|
||||
'a{font:12px Helvetica,Arial,Nautica;background:url(/some/nice/picture.png)}',
|
||||
'a{background:url(/some/nice/picture.png);font:12px Helvetica,Arial,Nautica}',
|
||||
'removing quotes in font and url (if possible)',
|
||||
],
|
||||
['/* no comments */ a { color: red; }', 'a{color:red}', 'remove comments'],
|
||||
|
||||
@@ -77,7 +77,7 @@ Tinytest.add('minifier-css - simple CSS minification', (test) => {
|
||||
'a {\n\
|
||||
font:12px \'Helvetica\',"Arial",\'Nautica\';\n\
|
||||
background:url("/some/nice/picture.png");\n}',
|
||||
'a{font:12px Helvetica,Arial,Nautica;background:url(/some/nice/picture.png)}',
|
||||
'a{background:url(/some/nice/picture.png);font:12px Helvetica,Arial,Nautica}',
|
||||
'removing quotes in font and url (if possible)',
|
||||
);
|
||||
checkMinified(
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
Package.describe({
|
||||
summary: 'CSS minifier',
|
||||
version: '1.6.2'
|
||||
version: '1.6.4',
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
postcss: '8.4.16',
|
||||
cssnano: '4.1.11'
|
||||
postcss: '8.4.21',
|
||||
cssnano: '5.1.15'
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
|
||||
@@ -11,7 +11,7 @@ are using to render your interface, and want to use that familiar API.
|
||||
|
||||
Minimongo is used as a temporary data cache in the standard Meteor stack, to
|
||||
learn more about mini-databases and what they can do, see [the project page on
|
||||
www.meteor.com](https://www.meteor.com/mini-databases)
|
||||
www.meteor.com](https://docs.meteor.com/api/collections.html)
|
||||
|
||||
## Internals
|
||||
|
||||
|
||||
@@ -521,6 +521,7 @@ ASYNC_CURSOR_METHODS.forEach(method => {
|
||||
const asyncName = getAsyncMethodName(method);
|
||||
Cursor.prototype[asyncName] = function(...args) {
|
||||
try {
|
||||
this[method].isCalledFromAsync = true;
|
||||
return Promise.resolve(this[method].apply(this, args));
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: "Meteor's client-side datastore: a port of MongoDB to Javascript",
|
||||
version: '1.9.2',
|
||||
version: '1.9.3',
|
||||
});
|
||||
|
||||
Package.onUse(api => {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
let verifyErrors = Package['modules-runtime'].verifyErrors;
|
||||
var verifyErrors = Package['modules-runtime'].verifyErrors;
|
||||
|
||||
meteorInstall = makeInstaller({
|
||||
// On the client, make package resolution prefer the "browser" field of
|
||||
@@ -14,7 +14,7 @@ meteorInstall = makeInstaller({
|
||||
}
|
||||
});
|
||||
|
||||
let Module = Package['modules-runtime'].meteorInstall.Module;
|
||||
var Module = Package['modules-runtime'].meteorInstall.Module;
|
||||
meteorInstall.Module.prototype.link = Module.prototype.link;
|
||||
|
||||
// This package should be running after modules-runtime but before modules.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
let verifyErrors = Package['modules-runtime'].verifyErrors;
|
||||
var verifyErrors = Package['modules-runtime'].verifyErrors;
|
||||
|
||||
meteorInstall = makeInstaller({
|
||||
// On the client, make package resolution prefer the "browser" field of
|
||||
@@ -11,7 +11,7 @@ meteorInstall = makeInstaller({
|
||||
}
|
||||
});
|
||||
|
||||
let Module = Package['modules-runtime'].meteorInstall.Module;
|
||||
var Module = Package['modules-runtime'].meteorInstall.Module;
|
||||
meteorInstall.Module.prototype.link = Module.prototype.link;
|
||||
|
||||
// This package should be running after modules-runtime but before modules.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: 'modules-runtime-hot',
|
||||
version: '0.14.1',
|
||||
version: '0.14.2',
|
||||
summary: 'Patches modules-runtime to support Hot Module Replacement',
|
||||
git: 'https://github.com/benjamn/install',
|
||||
documentation: 'README.md',
|
||||
|
||||
@@ -6,7 +6,24 @@ import {
|
||||
} from "meteor/minimongo/constants";
|
||||
|
||||
import { normalizeProjection } from "./mongo_utils";
|
||||
|
||||
export function warnUsingOldApi (
|
||||
methodName,
|
||||
collectionName,
|
||||
isCalledFromAsync
|
||||
){
|
||||
if (
|
||||
process.env.WARN_WHEN_USING_OLD_API && // also ensures it is on the server
|
||||
!isCalledFromAsync // must be true otherwise we should log
|
||||
) {
|
||||
if (collectionName === undefined || collectionName.includes('oplog')) return
|
||||
console.warn(`
|
||||
|
||||
Calling method ${collectionName}.${methodName} from old API on server.
|
||||
This method will be removed, from the server, in version 3.
|
||||
Trace is below:`)
|
||||
console.trace()
|
||||
};
|
||||
}
|
||||
/**
|
||||
* @summary Namespace for MongoDB-related items
|
||||
* @namespace
|
||||
@@ -339,7 +356,6 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
* @method estimatedDocumentCount
|
||||
* @memberof Mongo.Collection
|
||||
* @instance
|
||||
* @param {MongoSelector} [selector] A query describing the documents to count
|
||||
* @param {Object} [options] All options are listed in [MongoDB documentation](https://mongodb.github.io/node-mongodb-native/4.11/interfaces/EstimatedDocumentCountOptions.html). Please note that not all of them are available on the client.
|
||||
* @returns {Promise<number>}
|
||||
*/
|
||||
@@ -431,6 +447,15 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
* @returns {Object}
|
||||
*/
|
||||
findOne(...args) {
|
||||
// [FIBERS]
|
||||
// TODO: Remove this when 3.0 is released.
|
||||
warnUsingOldApi(
|
||||
"findOne",
|
||||
this._name,
|
||||
this.findOne.isCalledFromAsync
|
||||
);
|
||||
this.findOne.isCalledFromAsync = false;
|
||||
|
||||
return this._collection.findOne(
|
||||
this._getFindSelector(args),
|
||||
this._getFindOptions(args)
|
||||
@@ -539,6 +564,15 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
throw new Error('insert requires an argument');
|
||||
}
|
||||
|
||||
// [FIBERS]
|
||||
// TODO: Remove this when 3.0 is released.
|
||||
warnUsingOldApi(
|
||||
"insert",
|
||||
this._name,
|
||||
this.insert.isCalledFromAsync
|
||||
);
|
||||
this.insert.isCalledFromAsync = false;
|
||||
|
||||
// Make a shallow clone of the document, preserving its prototype.
|
||||
doc = Object.create(
|
||||
Object.getPrototypeOf(doc),
|
||||
@@ -653,6 +687,15 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
}
|
||||
}
|
||||
|
||||
// [FIBERS]
|
||||
// TODO: Remove this when 3.0 is released.
|
||||
warnUsingOldApi(
|
||||
"update",
|
||||
this._name,
|
||||
this.update.isCalledFromAsync
|
||||
);
|
||||
this.update.isCalledFromAsync = false;
|
||||
|
||||
selector = Mongo.Collection._rewriteSelector(selector, {
|
||||
fallbackId: insertedId,
|
||||
});
|
||||
@@ -704,6 +747,14 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
return this._callMutatorMethod('remove', [selector], wrappedCallback);
|
||||
}
|
||||
|
||||
// [FIBERS]
|
||||
// TODO: Remove this when 3.0 is released.
|
||||
warnUsingOldApi(
|
||||
"remove",
|
||||
this._name,
|
||||
this.remove.isCalledFromAsync
|
||||
);
|
||||
this.remove.isCalledFromAsync = false;
|
||||
// it's my collection. descend into the collection object
|
||||
// and propagate any exception.
|
||||
try {
|
||||
@@ -745,6 +796,15 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
options = {};
|
||||
}
|
||||
|
||||
// [FIBERS]
|
||||
// TODO: Remove this when 3.0 is released.
|
||||
warnUsingOldApi(
|
||||
"upsert",
|
||||
this._name,
|
||||
this.upsert.isCalledFromAsync
|
||||
);
|
||||
this.upsert.isCalledFromAsync = false; // will not trigger warning in `update`
|
||||
|
||||
return this.update(
|
||||
selector,
|
||||
modifier,
|
||||
@@ -788,6 +848,14 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
var self = this;
|
||||
if (!self._collection.createIndex)
|
||||
throw new Error('Can only call createIndex on server collections');
|
||||
// [FIBERS]
|
||||
// TODO: Remove this when 3.0 is released.
|
||||
warnUsingOldApi(
|
||||
"createIndex",
|
||||
self._name,
|
||||
self.createIndex.isCalledFromAsync
|
||||
);
|
||||
self.createIndex.isCalledFromAsync = false;
|
||||
try {
|
||||
self._collection.createIndex(index, options);
|
||||
} catch (e) {
|
||||
@@ -823,6 +891,15 @@ Object.assign(Mongo.Collection.prototype, {
|
||||
throw new Error(
|
||||
'Can only call _createCappedCollection on server collections'
|
||||
);
|
||||
|
||||
// [FIBERS]
|
||||
// TODO: Remove this when 3.0 is released.
|
||||
warnUsingOldApi(
|
||||
"_createCappedCollection",
|
||||
self._name,
|
||||
self._createCappedCollection.isCalledFromAsync
|
||||
);
|
||||
self._createCappedCollection.isCalledFromAsync = false;
|
||||
self._collection._createCappedCollection(byteSize, maxDocuments);
|
||||
},
|
||||
|
||||
@@ -916,13 +993,17 @@ function popCallbackFromArgs(args) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ASYNC_COLLECTION_METHODS.forEach(methodName => {
|
||||
const methodNameAsync = getAsyncMethodName(methodName);
|
||||
Mongo.Collection.prototype[methodNameAsync] = function(...args) {
|
||||
try {
|
||||
// TODO: Fibers remove this when we remove fibers.
|
||||
this[methodName].isCalledFromAsync = true;
|
||||
return Promise.resolve(this[methodName](...args));
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
@@ -414,3 +414,46 @@ Tinytest.add('collection - count should release the session',
|
||||
test.equal(preCount, postCount);
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Tinytest.addAsync('collection - should not block on cursor mismatch (#12516)',
|
||||
async function(test) {
|
||||
if (!Meteor.isServer) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Setup
|
||||
const collection = new Mongo.Collection('test' + test.id);
|
||||
Array.from({ length: 5 }).forEach((_, i) => {
|
||||
collection.insert({ name: "Test-" + i });
|
||||
});
|
||||
|
||||
// Test
|
||||
const cursor = collection.find({ name: undefined });
|
||||
|
||||
let subscription;
|
||||
const promise = new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
test.ok(!!subscription);
|
||||
resolve();
|
||||
}, 500);
|
||||
});
|
||||
subscription = cursor.observe({});
|
||||
subscription.stop();
|
||||
await promise;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
Meteor.isServer && Tinytest.addAsync('collection - simple add', async function(test){
|
||||
var collectionName = 'add' + test.id;
|
||||
var collection = new Mongo.Collection(collectionName);
|
||||
var id = await collection.insert({a: 1});
|
||||
test.equal((await collection.findOneAsync(id)).a, 1);
|
||||
id = await collection.insertAsync({a: 2});
|
||||
test.equal((await collection.findOneAsync(id)).a, 2);
|
||||
await collection.removeAsync({});
|
||||
|
||||
})
|
||||
|
||||
|
||||
@@ -19,9 +19,11 @@ export class DocFetcher {
|
||||
fetch(collectionName, id, op, callback) {
|
||||
const self = this;
|
||||
|
||||
|
||||
check(collectionName, 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 (self._callbacksForOp.has(op)) {
|
||||
|
||||
14
packages/mongo/mongo.d.ts
vendored
14
packages/mongo/mongo.d.ts
vendored
@@ -103,9 +103,11 @@ export namespace Mongo {
|
||||
maxDocuments?: number
|
||||
): Promise<void>;
|
||||
createIndex(
|
||||
indexSpec: NpmModuleMongodb.IndexSpecification,
|
||||
options?: NpmModuleMongodb.CreateIndexesOptions
|
||||
): void;
|
||||
createIndexAsync(
|
||||
indexSpec: NpmModuleMongodb.IndexSpecification,
|
||||
options?: NpmModuleMongodb.CreateIndexesOptions
|
||||
): Promise<void>;
|
||||
deny<Fn extends Transform<T> = undefined>(options: {
|
||||
@@ -169,6 +171,17 @@ export namespace Mongo {
|
||||
selector?: Selector<T> | ObjectID | string,
|
||||
options?: O
|
||||
): Promise<DispatchTransform<O['transform'], T, U> | undefined>;
|
||||
/**
|
||||
* Gets the number of documents matching the filter. For a fast count of the total documents in a collection see `estimatedDocumentCount`.
|
||||
* @param selector The query for filtering the set of documents to count
|
||||
* @param options All options are listed in [MongoDB documentation](https://mongodb.github.io/node-mongodb-native/4.11/interfaces/CountDocumentsOptions.html). Please note that not all of them are available on the client.
|
||||
*/
|
||||
countDocuments(selector?: Selector<T> | ObjectID | string, options?: MongoNpmModule.CountDocumentsOptions): Promise<number>;
|
||||
/**
|
||||
* Gets an estimate of the count of documents in a collection using collection metadata. For an exact count of the documents in a collection see `countDocuments`.
|
||||
* @param options All options are listed in [MongoDB documentation](https://mongodb.github.io/node-mongodb-native/4.11/interfaces/CountDocumentsOptions.html). Please note that not all of them are available on the client.
|
||||
*/
|
||||
estimatedDocumentCount(options?: MongoNpmModule.EstimatedDocumentCountOptions): Promise<number>;
|
||||
/**
|
||||
* Insert a document in the collection. Returns its unique _id.
|
||||
* @param doc The document to insert. May not yet have an _id attribute, in which case Meteor will generate one for you.
|
||||
@@ -294,6 +307,7 @@ export namespace Mongo {
|
||||
_createCappedCollection(byteSize?: number, maxDocuments?: number): void;
|
||||
/** @deprecated */
|
||||
_ensureIndex(
|
||||
indexSpec: NpmModuleMongodb.IndexSpecification,
|
||||
options?: NpmModuleMongodb.CreateIndexesOptions
|
||||
): void;
|
||||
_dropCollection(): Promise<void>;
|
||||
|
||||
@@ -247,6 +247,7 @@ MongoConnection.prototype._createCappedCollection = function (
|
||||
if (! self.db)
|
||||
throw Error("_createCappedCollection called before Connection created?");
|
||||
|
||||
|
||||
var future = new Future();
|
||||
self.db.createCollection(
|
||||
collectionName,
|
||||
@@ -427,11 +428,14 @@ MongoConnection.prototype._remove = function (collection_name, selector,
|
||||
MongoConnection.prototype._dropCollection = function (collectionName, cb) {
|
||||
var self = this;
|
||||
|
||||
|
||||
var write = self._maybeBeginWrite();
|
||||
var refresh = function () {
|
||||
Meteor.refresh({collection: collectionName, id: null,
|
||||
dropCollection: true});
|
||||
};
|
||||
|
||||
|
||||
cb = bindEnvironmentForWrite(writeCallback(write, refresh, cb));
|
||||
|
||||
try {
|
||||
@@ -466,6 +470,8 @@ MongoConnection.prototype._update = function (collection_name, selector, mod,
|
||||
options, callback) {
|
||||
var self = this;
|
||||
|
||||
|
||||
|
||||
if (! callback && options instanceof Function) {
|
||||
callback = options;
|
||||
options = null;
|
||||
@@ -779,6 +785,9 @@ _.each(["insert", "update", "remove", "dropCollection", "dropDatabase"], functio
|
||||
MongoConnection.prototype.upsert = function (collectionName, selector, mod,
|
||||
options, callback) {
|
||||
var self = this;
|
||||
|
||||
|
||||
|
||||
if (typeof options === "function" && ! callback) {
|
||||
callback = options;
|
||||
options = {};
|
||||
@@ -801,15 +810,32 @@ MongoConnection.prototype.find = function (collectionName, selector, options) {
|
||||
self, new CursorDescription(collectionName, selector, options));
|
||||
};
|
||||
|
||||
MongoConnection.prototype.findOne = function (collection_name, selector,
|
||||
options) {
|
||||
MongoConnection.prototype.findOneAsync = async function (collection_name, selector,
|
||||
options) {
|
||||
var self = this;
|
||||
if (arguments.length === 1)
|
||||
selector = {};
|
||||
|
||||
options = options || {};
|
||||
options.limit = 1;
|
||||
return self.find(collection_name, selector, options).fetch()[0];
|
||||
return (await self.find(collection_name, selector, options).fetchAsync())[0];
|
||||
};
|
||||
|
||||
MongoConnection.prototype.findOne = function (collection_name, selector,
|
||||
options) {
|
||||
var self = this;
|
||||
|
||||
return Future.fromPromise(self.findOneAsync(collection_name, selector, options)).wait();
|
||||
};
|
||||
|
||||
MongoConnection.prototype.createIndexAsync = function (collectionName, index,
|
||||
options) {
|
||||
var self = this;
|
||||
|
||||
// We expect this function to be called at startup, not from within a method,
|
||||
// so we don't interact with the write fence.
|
||||
var collection = self.rawCollection(collectionName);
|
||||
return collection.createIndex(index, options);
|
||||
};
|
||||
|
||||
// We'll actually design an index API later. For now, we just pass through to
|
||||
@@ -817,13 +843,9 @@ MongoConnection.prototype.findOne = function (collection_name, selector,
|
||||
MongoConnection.prototype.createIndex = function (collectionName, index,
|
||||
options) {
|
||||
var self = this;
|
||||
|
||||
|
||||
// We expect this function to be called at startup, not from within a method,
|
||||
// so we don't interact with the write fence.
|
||||
var collection = self.rawCollection(collectionName);
|
||||
var future = new Future;
|
||||
var indexName = collection.createIndex(index, options, future.resolver());
|
||||
future.wait();
|
||||
return Future.fromPromise(self.createIndexAsync(collectionName, index, options));
|
||||
};
|
||||
|
||||
MongoConnection.prototype.countDocuments = function (collectionName, ...args) {
|
||||
@@ -843,6 +865,7 @@ MongoConnection.prototype._ensureIndex = MongoConnection.prototype.createIndex;
|
||||
MongoConnection.prototype._dropIndex = function (collectionName, index) {
|
||||
var self = this;
|
||||
|
||||
|
||||
// This function is only used by test code, not within a method, so we don't
|
||||
// interact with the write fence.
|
||||
var collection = self.rawCollection(collectionName);
|
||||
@@ -921,6 +944,7 @@ function setupSynchronousCursor(cursor, method) {
|
||||
|
||||
|
||||
Cursor.prototype.count = function () {
|
||||
|
||||
const collection = this._mongo.rawCollection(this._cursorDescription.collectionName);
|
||||
return Promise.await(collection.countDocuments(
|
||||
replaceTypes(this._cursorDescription.selector, replaceMeteorAtomWithMongo),
|
||||
@@ -946,6 +970,7 @@ Cursor.prototype.count = function () {
|
||||
const methodNameAsync = getAsyncMethodName(methodName);
|
||||
Cursor.prototype[methodNameAsync] = function (...args) {
|
||||
try {
|
||||
this[methodName].isCalledFromAsync = true;
|
||||
return Promise.resolve(this[methodName](...args));
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
@@ -1160,6 +1185,7 @@ _.extend(SynchronousCursor.prototype, {
|
||||
|
||||
forEach: function (callback, thisArg) {
|
||||
var self = this;
|
||||
const wrappedFn = Meteor.wrapFn(callback);
|
||||
|
||||
// Get back to the beginning.
|
||||
self._rewind();
|
||||
@@ -1171,16 +1197,17 @@ _.extend(SynchronousCursor.prototype, {
|
||||
while (true) {
|
||||
var doc = self._nextObject();
|
||||
if (!doc) return;
|
||||
callback.call(thisArg, doc, index++, self._selfForIteration);
|
||||
wrappedFn.call(thisArg, doc, index++, self._selfForIteration);
|
||||
}
|
||||
},
|
||||
|
||||
// XXX Allow overlapping callback executions if callback yields.
|
||||
map: function (callback, thisArg) {
|
||||
var self = this;
|
||||
const wrappedFn = Meteor.wrapFn(callback);
|
||||
var res = [];
|
||||
self.forEach(function (doc, index) {
|
||||
res.push(callback.call(thisArg, doc, index, self._selfForIteration));
|
||||
res.push(wrappedFn.call(thisArg, doc, index, self._selfForIteration));
|
||||
});
|
||||
return res;
|
||||
},
|
||||
|
||||
@@ -887,15 +887,11 @@ _.extend(OplogObserveDriver.prototype, {
|
||||
// there.
|
||||
// XXX if this is slow, remove it later
|
||||
if (self._published.size() !== newResults.size()) {
|
||||
console.error('The Mongo server and the Meteor query disagree on how ' +
|
||||
Meteor._debug('The Mongo server and the Meteor query disagree on how ' +
|
||||
'many documents match your query. Cursor description: ',
|
||||
self._cursorDescription);
|
||||
throw Error(
|
||||
"The Mongo server and the Meteor query disagree on how " +
|
||||
"many documents match your query. Maybe it is hitting a Mongo " +
|
||||
"edge case? The query is: " +
|
||||
EJSON.stringify(self._cursorDescription.selector));
|
||||
}
|
||||
|
||||
self._published.forEach(function (doc, id) {
|
||||
if (!newResults.has(id))
|
||||
throw Error("_published has a doc that newResults doesn't; " + id);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
Package.describe({
|
||||
summary: "Adaptor for using MongoDB and Minimongo over DDP",
|
||||
version: '1.16.5',
|
||||
version: '1.16.6',
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
import {
|
||||
ASYNC_COLLECTION_METHODS,
|
||||
getAsyncMethodName
|
||||
} from "meteor/minimongo/constants";
|
||||
|
||||
MongoInternals.RemoteCollectionDriver = function (
|
||||
mongo_url, options) {
|
||||
var self = this;
|
||||
@@ -28,6 +33,16 @@ Object.assign(MongoInternals.RemoteCollectionDriver.prototype, {
|
||||
REMOTE_COLLECTION_METHODS.forEach(
|
||||
function (m) {
|
||||
ret[m] = _.bind(self.mongo[m], self.mongo, name);
|
||||
|
||||
if (!ASYNC_COLLECTION_METHODS.includes(m)) return;
|
||||
const asyncMethodName = getAsyncMethodName(m);
|
||||
ret[asyncMethodName] = function (...args) {
|
||||
try {
|
||||
return Promise.resolve(ret[m](...args));
|
||||
} catch (error) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
}
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
Submodule packages/non-core/blaze updated: 646383bc37...225ded2701
372
packages/npm-mongo/.npm/package/npm-shrinkwrap.json
generated
372
packages/npm-mongo/.npm/package/npm-shrinkwrap.json
generated
@@ -62,299 +62,299 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/abort-controller": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.271.0.tgz",
|
||||
"integrity": "sha512-sP4RvP0fvmMySS6hV/EKMrTJ9KVMH85rn1EKvmJ3nBTKRKiR8GQUS/vX+dhLYu+3jRs2P6cY2zjGzpaOcII91w=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.310.0.tgz",
|
||||
"integrity": "sha512-v1zrRQxDLA1MdPim159Vx/CPHqsB4uybSxRi1CnfHO5ZjHryx3a5htW2gdGAykVCul40+yJXvfpufMrELVxH+g=="
|
||||
},
|
||||
"@aws-sdk/client-cognito-identity": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.271.0.tgz",
|
||||
"integrity": "sha512-mPDRSMCnFjXccsi630+LqLycw5adry/eMPmzc76x6FLvXwW/tQtq1XsQT5MvwYKYasG78WhD/BBPymDENf6slQ=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.316.0.tgz",
|
||||
"integrity": "sha512-+x0FvG+zXwR40O/gmksxpMUc2DHTdezZZZjOMmd8Z413zb6JZEu4lBweA9pYjXiUYuYrLCd+MP70JI8xzjs17w=="
|
||||
},
|
||||
"@aws-sdk/client-sso": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.271.0.tgz",
|
||||
"integrity": "sha512-auWPqok8yJ2UOQfNrvfLNmvf0tRAbekaZRvZZ2TzTKTKd7yz6V7Y5+AdRnp01FHoOQ+8A7MHTXtp7h7i9qltKw=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.316.0.tgz",
|
||||
"integrity": "sha512-wGXfIhR0lJGB8QTT0fwSwwklHePHxd2GW3IQt3trXnEYe0frmJ7vYRnVL5CSRKsikLDmaU7ll3SdsshMzQzo3w=="
|
||||
},
|
||||
"@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.271.0.tgz",
|
||||
"integrity": "sha512-pYN8r0slDbP0v2q0SyLKihE2PPfbsF/hH7+11w6OpAMvSGvfm+m8R5rB49Szy3bkDudR0MhLpD6D76yoy9ckrQ=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.316.0.tgz",
|
||||
"integrity": "sha512-e2fvC7o42YV+LcZYfXCcvBn4L7NM9oNccnZ7T+pS6SFpHZlaqkw4uuQMRE6iUAof+Id7Mt7xDrz1x2yGlP+8GA=="
|
||||
},
|
||||
"@aws-sdk/client-sts": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.271.0.tgz",
|
||||
"integrity": "sha512-dsLGj1Q3EdqLYNjm0WpeK07wv8Xed6R+tCf+x4KMWOAVAnz72XuoZNWDI2NvACubAniEhpFycMmf39Y6NCAkLg=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.316.0.tgz",
|
||||
"integrity": "sha512-5SD59+DRVy1mKckGs/5J8OwWpRS3E5v4BX19XaX/s9JJ5Rw9aZd9DP4SZVpeNXztIPjkQSEzHgrUVlZFB1QJgg=="
|
||||
},
|
||||
"@aws-sdk/config-resolver": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.271.0.tgz",
|
||||
"integrity": "sha512-WNtUjOa9ufKK4+o58YHosjU9J8v494Fb10tHFqD4OspFWLxBKzSJ+r6xpQRcVPucxsmocGJ2QhIiNYo8OySKkA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.310.0.tgz",
|
||||
"integrity": "sha512-8vsT+/50lOqfDxka9m/rRt6oxv1WuGZoP8oPMk0Dt+TxXMbAzf4+rejBgiB96wshI1k3gLokYRjSQZn+dDtT8g=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-cognito-identity": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.271.0.tgz",
|
||||
"integrity": "sha512-XL/CL31QVjaFqkCe3PSzesrip0DTI+idxiEyZ4s/DQ8NhxUVshE7wI00Wv+VQof1CtyT5ONWjhZrj00MD2L0tA=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.316.0.tgz",
|
||||
"integrity": "sha512-tHfYEhVfAwauEFkHCgqTWASm3AN8jD3C8ecbnBFIFuBKZFQG+QwlUrJc05jOMx2xRctA7NRm8lD3YmvWmfYw1g=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-env": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.271.0.tgz",
|
||||
"integrity": "sha512-lKZGcDYe8us2Ep7/AjhLyMMTq0NuVt+M+L1eedBGRuGkx/Hrvn4qwlIvSXZhiodoQVa+Wr1zIah3Z06U0dTaZA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.310.0.tgz",
|
||||
"integrity": "sha512-vvIPQpI16fj95xwS7M3D48F7QhZJBnnCgB5lR+b7So+vsG9ibm1mZRVGzVpdxCvgyOhHFbvrby9aalNJmmIP1A=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-imds": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.271.0.tgz",
|
||||
"integrity": "sha512-u3KsjtGBo1SA9HQAVxfA7zHWirlrdKsqsMpnp4eOtixZLoz1e2EytrR5XZem2HND0lzjrUrEPGDPp5OpDtcHxw=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.310.0.tgz",
|
||||
"integrity": "sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.271.0.tgz",
|
||||
"integrity": "sha512-zIclMwXbJeNev74+0tbxLpEO2Js7AhqvR2Msiytz05kOXRyk61NMEavtKRp1YxD2KMptONnvNlbWbNW2rrRDnw=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.316.0.tgz",
|
||||
"integrity": "sha512-ZADkpdEjFCAXyzEpYbCRENlZ/AQEwevWdPd2yshjNo7xvOcepv4pPIBpYd8h9LvRafSLGA7zlWDz84hkIt+HKA=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-node": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.271.0.tgz",
|
||||
"integrity": "sha512-hfdJ+8QM5xXEm4mF4AfIy6T1fVb2zTaUVm5PfPDHtkggVM1L+QSywEkZ2lUqQZMLbbatJqVLy2EMA91k5kjVrA=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.316.0.tgz",
|
||||
"integrity": "sha512-oE1LTXP8XZp4bT8LhBeolMRiz0RwnmHDC2XpUmWO8LTmbDNrQO0mVzxEvXDLeKaN5BIFIJqNFlMgjWUMa9Kwcw=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-process": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.271.0.tgz",
|
||||
"integrity": "sha512-Q1HIZYTUYLVe0cNc3HbtFOFzgo3A6PHcmT62T8XClAhFRhkOsJ/KWUybjm8col49/1uqIjKA20E7P7f5Qnn2TQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.310.0.tgz",
|
||||
"integrity": "sha512-h73sg6GPMUWC+3zMCbA1nZ2O03nNJt7G96JdmnantiXBwHpRKWW8nBTLzx5uhXn6hTuTaoQRP/P+oxQJKYdMmA=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.271.0.tgz",
|
||||
"integrity": "sha512-TIvsv4xXTME6UsH7g05IzVDCLujaMmgv45A0KcAyM/J/HvFQ9IBOBdyKGU5zIawPvCWXiqQqZs/kDchdB2sjXA=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.316.0.tgz",
|
||||
"integrity": "sha512-8/O2twlsoV1bDkZ9jd7JCMWsftfyoTyRT1UYscsKZGUDEgZRAxRkzS3GLYuLXEWNuxb1OB9rYk/cEJoxwy7T9g=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-web-identity": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.271.0.tgz",
|
||||
"integrity": "sha512-GD1mg7fMA3ESl0jdzH/+keZHV9Fue/iaGMIWNCUm7M9dOJo0JZbDNzSaMtxZnuA6xtkvw3FiLH6ZxPt0V+7wmg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.310.0.tgz",
|
||||
"integrity": "sha512-H4SzuZXILNhK6/IR1uVvsUDZvzc051hem7GLyYghBCu8mU+tq28YhKE8MfSroi6eL2e5Vujloij1OM2EQQkPkw=="
|
||||
},
|
||||
"@aws-sdk/credential-providers": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.271.0.tgz",
|
||||
"integrity": "sha512-s3qTsTTZESfb2mvfxAgWUhOumdZHBXA+WzEqagvzwaxdRZSwrubtGYB24bm4e+TL6Rr7N5DTs6Ty3NPI524Jhw=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.316.0.tgz",
|
||||
"integrity": "sha512-PH5qpgVEcRTHnG/xJ01NlYu85YBhHr2ZTgPweuHS5RDNvzuEaoCH5U7BNC8CSfpHXaGACCNYalG8kjPSFiFmjA=="
|
||||
},
|
||||
"@aws-sdk/fetch-http-handler": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.271.0.tgz",
|
||||
"integrity": "sha512-yc0YgKioACFcfs7RPtVHRlpsyYJNdEHkqiWtnRSXG0vuZHAkfvwzchrDK4bizMblnmEV/xbl495ZqDlVbQ0c9A=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.310.0.tgz",
|
||||
"integrity": "sha512-Bi9vIwzdkw1zMcvi/zGzlWS9KfIEnAq4NNhsnCxbQ4OoIRU9wvU+WGZdBBhxg0ZxZmpp1j1aZhU53lLjA07MHw=="
|
||||
},
|
||||
"@aws-sdk/hash-node": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.271.0.tgz",
|
||||
"integrity": "sha512-VamRhkGo2uaVe7KhQhdTqpp9y5JKSFNE3yCUZf/o6lGwL9BgBpBiVqzwCePtas7hAphAaOYvefIwx0XLaCeQ1w=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.310.0.tgz",
|
||||
"integrity": "sha512-NvE2fhRc8GRwCXBfDehxVAWCmVwVMILliAKVPAEr4yz2CkYs0tqU51S48x23dtna07H4qHtgpeNqVTthcIQOEQ=="
|
||||
},
|
||||
"@aws-sdk/invalid-dependency": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.271.0.tgz",
|
||||
"integrity": "sha512-ZN8JmN/t+4UTHkQ6wdod2KKLfJcewLS3D/0iZLnvvOzLlymhcHp9QY8t//RObF+WxnlWeCAvZttoMl/a2MLpYQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.310.0.tgz",
|
||||
"integrity": "sha512-1s5RG5rSPXoa/aZ/Kqr5U/7lqpx+Ry81GprQ2bxWqJvWQIJ0IRUwo5pk8XFxbKVr/2a+4lZT/c3OGoBOM1yRRA=="
|
||||
},
|
||||
"@aws-sdk/is-array-buffer": {
|
||||
"version": "3.201.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz",
|
||||
"integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz",
|
||||
"integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ=="
|
||||
},
|
||||
"@aws-sdk/middleware-content-length": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.271.0.tgz",
|
||||
"integrity": "sha512-bmfqCvjFcowa6jLltJIkGHNXY599Fu9ROoMtYjQiD2ixWHmUpS0I/VivcxXL3uES2qhehxYXyJFyCt7aqRQqcA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.310.0.tgz",
|
||||
"integrity": "sha512-P8tQZxgDt6CAh1wd/W6WPzjc+uWPJwQkm+F7rAwRlM+k9q17HrhnksGDKcpuuLyIhPQYdmOMIkpKVgXGa4avhQ=="
|
||||
},
|
||||
"@aws-sdk/middleware-endpoint": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.271.0.tgz",
|
||||
"integrity": "sha512-pibhIe57e68NAfDUY5c7d9zo6WfNwgfclwtrK0nV3OXw9psNeCLGLC1YbzsTun49tm0ICSmkHgmqfsXAVe4HWA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.310.0.tgz",
|
||||
"integrity": "sha512-Z+N2vOL8K354/lstkClxLLsr6hCpVRh+0tCMXrVj66/NtKysCEZ/0b9LmqOwD9pWHNiI2mJqXwY0gxNlKAroUg=="
|
||||
},
|
||||
"@aws-sdk/middleware-host-header": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.271.0.tgz",
|
||||
"integrity": "sha512-sp75WZDzDui/Wr3GnQH/db4DXgVdOpKdRQddDsRuULzri8HeJlhMW+JCP+sP0kQmkO06Dagxv1tSmENUxFhPaQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.310.0.tgz",
|
||||
"integrity": "sha512-QWSA+46/hXorXyWa61ic2K7qZzwHTiwfk2e9mRRjeIRepUgI3qxFjsYqrWtrOGBjmFmq0pYIY8Bb/DCJuQqcoA=="
|
||||
},
|
||||
"@aws-sdk/middleware-logger": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.271.0.tgz",
|
||||
"integrity": "sha512-mB/vayfsuc20PySSpbbQ56CPER/RAZF5oGkwGuwFI3bY+VwRun0MOnx3yHj7Ja2DN1ZEOH1Hzrb0eUgREozmHw=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.310.0.tgz",
|
||||
"integrity": "sha512-Lurm8XofrASBRnAVtiSNuDSRsRqPNg27RIFLLsLp/pqog9nFJ0vz0kgdb9S5Z+zw83Mm+UlqOe6D8NTUNp4fVg=="
|
||||
},
|
||||
"@aws-sdk/middleware-recursion-detection": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.271.0.tgz",
|
||||
"integrity": "sha512-prrS/YL3GdLODqVBSgxvpUfo9aPBLB3Km5wNBdbhjjN0rI1RqjD+0LquVgaz6C1VU/I8cYbnxrFYtQVcdgnWpg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.310.0.tgz",
|
||||
"integrity": "sha512-SuB75/xk/gyue24gkriTwO2jFd7YcUGZDClQYuRejgbXSa3CO0lWyawQtfLcSSEBp9izrEVXuFH24K1eAft5nQ=="
|
||||
},
|
||||
"@aws-sdk/middleware-retry": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.271.0.tgz",
|
||||
"integrity": "sha512-yCBXmxbFGT/4czTi+e4z7lV0nbMWctvvzOtl1ssBiG0LagijIhK4KUp0KTnqDJ+yBqxMpd7wNJ1B0NdS0re6Fw=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.310.0.tgz",
|
||||
"integrity": "sha512-oTPsRy2W4s+dfxbJPW7Km+hHtv/OMsNsVfThAq8DDYKC13qlr1aAyOqGLD+dpBy2aKe7ss517Sy2HcHtHqm7/g=="
|
||||
},
|
||||
"@aws-sdk/middleware-sdk-sts": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.271.0.tgz",
|
||||
"integrity": "sha512-/h8+PAx+85M+tSL/kl1lWVgHrrodmDRuQuDLXC7ufE6C1JRxRBkWMTOg6S3ZeuKo1Va/8RcAKf7jtkGdIBD5HQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.310.0.tgz",
|
||||
"integrity": "sha512-+5PFwlYNLvLLIfw0ASAoWV/iIF8Zv6R6QGtyP0CclhRSvNjgbQDVnV0g95MC5qvh+GB/Yjlkt8qAjLSPjHfsrQ=="
|
||||
},
|
||||
"@aws-sdk/middleware-serde": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.271.0.tgz",
|
||||
"integrity": "sha512-louPEKEZP2TtTavMwg4k6IJjEbXC6xV05Wtb4I+ZKzjupoTG80nmLtgPU7rnvweej3D69aeSQETfPoq1N4u4mg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.310.0.tgz",
|
||||
"integrity": "sha512-RNeeTVWSLTaentUeCgQKZhAl+C6hxtwD78cQWS10UymWpQFwbaxztzKUu4UQS5xA2j6PxwPRRUjqa4jcFjfLsg=="
|
||||
},
|
||||
"@aws-sdk/middleware-signing": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.271.0.tgz",
|
||||
"integrity": "sha512-jCxbt6sehnmV6we2uu0rY5McREJQ9WGQ3HCtjG1qSxm1vJkROX40IUvq7uvwPi3FquqIv2pCc64vLuDdhfs6OA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.310.0.tgz",
|
||||
"integrity": "sha512-f9mKq+XMdW207Af3hKjdTnpNhdtwqWuvFs/ZyXoOkp/g1MY1O6L23Jy6i52m29LxbT4AuNRG1oKODfXM0vYVjQ=="
|
||||
},
|
||||
"@aws-sdk/middleware-stack": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.271.0.tgz",
|
||||
"integrity": "sha512-ojbvxVdJRzvHx1SiXTX8z5qtsX/86+puqqmhTNQTed0/sp856rJVHrE+59qrOa8tNX+dHih5nzmjZ2OvhP+duA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.310.0.tgz",
|
||||
"integrity": "sha512-010O1PD+UAcZVKRvqEusE1KJqN96wwrf6QsqbRM0ywsKQ21NDweaHvEDlds2VHpgmofxkRLRu/IDrlPkKRQrRg=="
|
||||
},
|
||||
"@aws-sdk/middleware-user-agent": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.271.0.tgz",
|
||||
"integrity": "sha512-VnoY5DfdkSorT/bM91FPwHduzkRFBTi/MyU/J08xPkuAQfu2CmvIBr8W15XN1ysAZbZVyDir7NeE9MNG6Q/soA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.310.0.tgz",
|
||||
"integrity": "sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g=="
|
||||
},
|
||||
"@aws-sdk/node-config-provider": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.271.0.tgz",
|
||||
"integrity": "sha512-PbEQ7GRO9/oXXrxIMPkOsL1lKzi3FzMizFj1tLjSkN+lvUaRt2w9Yrb+P3G7Wr2VyniI8QwpAPnebQ+5Rg7yig=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.310.0.tgz",
|
||||
"integrity": "sha512-T/Pp6htc6hq/Cq+MLNDSyiwWCMVF6GqbBbXKVlO5L8rdHx4sq9xPdoPveZhGWrxvkanjA6eCwUp6E0riBOSVng=="
|
||||
},
|
||||
"@aws-sdk/node-http-handler": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.271.0.tgz",
|
||||
"integrity": "sha512-r/wLPLUo3HeWHumvnYxP4LvMz1cKpVO7XVognt5caeDakS2CDiFN3NiCO2PFxOGoWCyMDKcroKtIdXETcgrEbQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.310.0.tgz",
|
||||
"integrity": "sha512-irv9mbcM9xC2xYjArQF5SYmHBMu4ciMWtGsoHII1nRuFOl9FoT4ffTvEPuLlfC6pznzvKt9zvnm6xXj7gDChKg=="
|
||||
},
|
||||
"@aws-sdk/property-provider": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.271.0.tgz",
|
||||
"integrity": "sha512-y95eWGs2tbCESZZVqNWbDXOL43y18bZSS0mfac2n7srOfeuVh+4+8Zdhsnz/NW3Ao61+k1IxKCFnX0iKfJSu2Q=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.310.0.tgz",
|
||||
"integrity": "sha512-3lxDb0akV6BBzmFe4nLPaoliQbAifyWJhuvuDOu7e8NzouvpQXs0275w9LePhhcgjKAEVXUIse05ZW2DLbxo/g=="
|
||||
},
|
||||
"@aws-sdk/protocol-http": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.271.0.tgz",
|
||||
"integrity": "sha512-WWyS/M+A0NoEBBLbgO1qG7oxEGWvhjsFJgX0Yzz38mKIjW8G/31X9ylaCQoGFSOTn6GXBRqc/i0P86os+wL45Q=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.310.0.tgz",
|
||||
"integrity": "sha512-fgZ1aw/irQtnrsR58pS8ThKOWo57Py3xX6giRvwSgZDEcxHfVzuQjy9yPuV++v04fdmdtgpbGf8WfvAAJ11yXQ=="
|
||||
},
|
||||
"@aws-sdk/querystring-builder": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.271.0.tgz",
|
||||
"integrity": "sha512-2FKaoeOgCyn2eShq4hZrEBQ9euHYMvh0aFwWrjQgXjUWJmV4Q+/+eob/sEDeeYvkMW45T5aIG7D+hbVowgWZAQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.310.0.tgz",
|
||||
"integrity": "sha512-ZHH8GV/80+pWGo7DzsvwvXR5xVxUHXUvPJPFAkhr6nCf78igdoF8gR10ScFoEKbtEapoNTaZlKHPXxpD8aPG7A=="
|
||||
},
|
||||
"@aws-sdk/querystring-parser": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.271.0.tgz",
|
||||
"integrity": "sha512-SGcxf+gaSMMST806zQxETEoe3ENWkncQh+cpDNDRo/oS582PMd7tIOAxP9JJdLJGp9UkIdSkTLWXDjzk9Zt02w=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.310.0.tgz",
|
||||
"integrity": "sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA=="
|
||||
},
|
||||
"@aws-sdk/service-error-classification": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.271.0.tgz",
|
||||
"integrity": "sha512-yTnxoeCa4uMRfpaaq6oG1h1a01vXQ2al+D0DyX+D5sw7u6RyZOaxxUEbyfEPTN+JtRw+M+zcdlvto3swIwRqoQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.310.0.tgz",
|
||||
"integrity": "sha512-PuyC7k3qfIKeH2LCnDwbttMOKq3qAx4buvg0yfnJtQOz6t1AR8gsnAq0CjKXXyfkXwNKWTqCpE6lVNUIkXgsMw=="
|
||||
},
|
||||
"@aws-sdk/shared-ini-file-loader": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.271.0.tgz",
|
||||
"integrity": "sha512-PR1Hco+r1sH7WlqxaO3Vvl6a8I5juvwVjwjjorbI3EVsxQgEcyCjy1ZVnpCAxY1Xam7ne5nAWO6Y6LtfY4JJ5g=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.310.0.tgz",
|
||||
"integrity": "sha512-N0q9pG0xSjQwc690YQND5bofm+4nfUviQ/Ppgan2kU6aU0WUq8KwgHJBto/YEEI+VlrME30jZJnxtOvcZJc2XA=="
|
||||
},
|
||||
"@aws-sdk/signature-v4": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.271.0.tgz",
|
||||
"integrity": "sha512-OzS+h0MGqzukJSrPqVi08pWDGZkq8U/yXf2LfCkQz58Rv/pbCuDIIN7Oab6IwnVPQV7KoCsegYL3e6BpOp1qpA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.310.0.tgz",
|
||||
"integrity": "sha512-1M60P1ZBNAjCFv9sYW29OF6okktaeibWyW3lMXqzoHF70lHBZh+838iUchznXUA5FLabfn4jBFWMRxlAXJUY2Q=="
|
||||
},
|
||||
"@aws-sdk/smithy-client": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.271.0.tgz",
|
||||
"integrity": "sha512-8wqNArFoLx2hy2kT5jV7JsaZ4jIqI535K1WXBCkzVLKNMv6RVYCBN57I5+C5sgVtHCZwy9RLzRHJIGLEIKIfBg=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.316.0.tgz",
|
||||
"integrity": "sha512-6YXOKbRnXeS8r8RWzuL6JMBolDYM5Wa4fD/VY6x/wK78i2xErHOvqzHgyyeLI1MMw4uqyd4wRNJNWC9TMPduXw=="
|
||||
},
|
||||
"@aws-sdk/token-providers": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.271.0.tgz",
|
||||
"integrity": "sha512-tCh3Pw7VuSGT6yg8n7IeNc25IT8cjPS9Q0YKzjN8rPBZW5iI8/kJyZ7kQBj52JD8WrEYCoxG4hnDvawe1e1lAA=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.316.0.tgz",
|
||||
"integrity": "sha512-foJ2YmB8A/mtp52riO2zdmBgzA3IpASNgUhY9FZg1BKpGcjqLQDGYP+BY3BA0H7CFsMa4PCf13M5wWwn1onyBA=="
|
||||
},
|
||||
"@aws-sdk/types": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.271.0.tgz",
|
||||
"integrity": "sha512-w4oNKEaBul7eh2IM97c89xaH9Ti8+e+u/Rc1ZkgNtpnfOpDUU2t3ugJ91ihGH+xtASQCWJTopTDfX5CuKsQQtQ=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.310.0.tgz",
|
||||
"integrity": "sha512-j8eamQJ7YcIhw7fneUfs8LYl3t01k4uHi4ZDmNRgtbmbmTTG3FZc2MotStZnp3nZB6vLiPF1o5aoJxWVvkzS6A=="
|
||||
},
|
||||
"@aws-sdk/url-parser": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.271.0.tgz",
|
||||
"integrity": "sha512-HuL38pnLaZX4zjlsm9sZfyiPvEK9gFl9viX7wpBJcF50+KgRcj1rasYCy8AfWlCEtL7A214xEutFwGqLfTyDag=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.310.0.tgz",
|
||||
"integrity": "sha512-mCLnCaSB9rQvAgx33u0DujLvr4d5yEm/W5r789GblwwQnlNXedVu50QRizMLTpltYWyAUoXjJgQnJHmJMaKXhw=="
|
||||
},
|
||||
"@aws-sdk/util-base64": {
|
||||
"version": "3.208.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz",
|
||||
"integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz",
|
||||
"integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg=="
|
||||
},
|
||||
"@aws-sdk/util-body-length-browser": {
|
||||
"version": "3.188.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz",
|
||||
"integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz",
|
||||
"integrity": "sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g=="
|
||||
},
|
||||
"@aws-sdk/util-body-length-node": {
|
||||
"version": "3.208.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz",
|
||||
"integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz",
|
||||
"integrity": "sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ=="
|
||||
},
|
||||
"@aws-sdk/util-buffer-from": {
|
||||
"version": "3.208.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz",
|
||||
"integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz",
|
||||
"integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw=="
|
||||
},
|
||||
"@aws-sdk/util-config-provider": {
|
||||
"version": "3.208.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz",
|
||||
"integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz",
|
||||
"integrity": "sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg=="
|
||||
},
|
||||
"@aws-sdk/util-defaults-mode-browser": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.271.0.tgz",
|
||||
"integrity": "sha512-zyCIT/4PKiBxblZLKcMTNCllKcPhLuE08lIv1fGaqgIZzULFaAGjd/lpTO1q7I2hOt5oFL/4uzTFDrG8g5HJAg=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.316.0.tgz",
|
||||
"integrity": "sha512-6FSqLhYmaihtH2n1s4b2rlLW0ABU8N6VZIfzLfe2ING4PF0MzfaMMhnTFUHVXfKCVGoR8yP6iyFTRCyHGVEL1w=="
|
||||
},
|
||||
"@aws-sdk/util-defaults-mode-node": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.271.0.tgz",
|
||||
"integrity": "sha512-QqruC9fkrraoWxrzG7EFX/pOkoLblV2YPsvPHR37DzKSssnsQxOPbiAF95Qw2zocsDrpDuxJEe2RM800vunIsw=="
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.316.0.tgz",
|
||||
"integrity": "sha512-dkYy10hdjPSScXXvnjGpZpnJxllkb6ICHgLMwZ4JczLHhPM12T/4PQ758YN8HS+muiYDGX1Bl2z1jd/bMcewBQ=="
|
||||
},
|
||||
"@aws-sdk/util-endpoints": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.271.0.tgz",
|
||||
"integrity": "sha512-qr+IWZB0Th+TcarjTW5ZakkbKxBNKlLsnFiw3j+gECDA5raUEyTB3w6tRH0nhPFNzN6cM5P8arKlpm3R7f002Q=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.310.0.tgz",
|
||||
"integrity": "sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ=="
|
||||
},
|
||||
"@aws-sdk/util-hex-encoding": {
|
||||
"version": "3.201.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz",
|
||||
"integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz",
|
||||
"integrity": "sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA=="
|
||||
},
|
||||
"@aws-sdk/util-locate-window": {
|
||||
"version": "3.208.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz",
|
||||
"integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz",
|
||||
"integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w=="
|
||||
},
|
||||
"@aws-sdk/util-middleware": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.271.0.tgz",
|
||||
"integrity": "sha512-qE+t+JKygIPtXvik1Dy9B2dQx8pJ5NFPms/uFi9kOexCJy8mWd4FApK+sCwT5TGWte+tY2Fg7fcTs5g7ufcsKw=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.310.0.tgz",
|
||||
"integrity": "sha512-FTSUKL/eRb9X6uEZClrTe27QFXUNNp7fxYrPndZwk1hlaOP5ix+MIHBcI7pIiiY/JPfOUmPyZOu+HetlFXjWog=="
|
||||
},
|
||||
"@aws-sdk/util-retry": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.271.0.tgz",
|
||||
"integrity": "sha512-tO3nHBtAlBSppM37AJNc/rUwLNypPvkDC7av2cyuCDTaH4OHLd/RqZUtvMtSXJKjxR4v8RiyiQvRVE65u0Ermw=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.310.0.tgz",
|
||||
"integrity": "sha512-FwWGhCBLfoivTMUHu1LIn4NjrN9JLJ/aX5aZmbcPIOhZVFJj638j0qDgZXyfvVqBuBZh7M8kGq0Oahy3dp69OA=="
|
||||
},
|
||||
"@aws-sdk/util-uri-escape": {
|
||||
"version": "3.201.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz",
|
||||
"integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz",
|
||||
"integrity": "sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q=="
|
||||
},
|
||||
"@aws-sdk/util-user-agent-browser": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.271.0.tgz",
|
||||
"integrity": "sha512-nFU4flPzzkG6c46ZKroXtQc6D8g/8ei3nUYJF2Poc+3UD/GiuKASWR+ymALN7Zc2YfR95LcVCNdcm1rDI1WLXA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.310.0.tgz",
|
||||
"integrity": "sha512-yU/4QnHHuQ5z3vsUqMQVfYLbZGYwpYblPiuZx4Zo9+x0PBkNjYMqctdDcrpoH9Z2xZiDN16AmQGK1tix117ZKw=="
|
||||
},
|
||||
"@aws-sdk/util-user-agent-node": {
|
||||
"version": "3.271.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.271.0.tgz",
|
||||
"integrity": "sha512-okLJbQ1iBmAH+OdqDd6AmINUAQdLnhi+D9rvp4ZoE5DIhgbzFIuUK6SByB7Rl/9XE76wzkHfRhZJYPyD1cPkQA=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.310.0.tgz",
|
||||
"integrity": "sha512-Ra3pEl+Gn2BpeE7KiDGpi4zj7WJXZA5GXnGo3mjbi9+Y3zrbuhJAbdZO3mO/o7xDgMC6ph4xCTbaSGzU6b6EDg=="
|
||||
},
|
||||
"@aws-sdk/util-utf8": {
|
||||
"version": "3.254.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz",
|
||||
"integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw=="
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz",
|
||||
"integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA=="
|
||||
},
|
||||
"@aws-sdk/util-utf8-browser": {
|
||||
"version": "3.259.0",
|
||||
@@ -362,9 +362,9 @@
|
||||
"integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "18.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
|
||||
"integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
|
||||
"version": "18.15.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.12.tgz",
|
||||
"integrity": "sha512-Wha1UwsB3CYdqUm2PPzh/1gujGCNtWVUYF0mB00fJFoR4gTyWTDPjSm+zBF787Ahw8vSGgBja90MkgFwvB86Dg=="
|
||||
},
|
||||
"@types/webidl-conversions": {
|
||||
"version": "7.0.0",
|
||||
@@ -397,9 +397,9 @@
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="
|
||||
},
|
||||
"fast-xml-parser": {
|
||||
"version": "4.0.11",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz",
|
||||
"integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA=="
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz",
|
||||
"integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg=="
|
||||
},
|
||||
"ieee754": {
|
||||
"version": "1.2.1",
|
||||
@@ -417,9 +417,9 @@
|
||||
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
|
||||
},
|
||||
"mongodb": {
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.14.0.tgz",
|
||||
"integrity": "sha512-coGKkWXIBczZPr284tYKFLg+KbGPPLlSbdgfKAb6QqCFt5bo5VFZ50O3FFzsw4rnkqjwT6D8Qcoo9nshYKM7Mg=="
|
||||
"version": "4.16.0",
|
||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.16.0.tgz",
|
||||
"integrity": "sha512-0EB113Fsucaq1wsY0dOhi1fmZOwFtLOtteQkiqOXGklvWMnSH3g2QS53f0KTP+/6qOkuoXE2JksubSZNmxeI+g=="
|
||||
},
|
||||
"mongodb-connection-string-url": {
|
||||
"version": "2.6.0",
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
|
||||
Package.describe({
|
||||
summary: "Wrapper around the mongo npm package",
|
||||
version: '4.14.0',
|
||||
version: '4.16.0',
|
||||
documentation: null
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
mongodb: "4.14.0"
|
||||
mongodb: "4.16.0"
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: 'rate-limit',
|
||||
version: '1.0.9',
|
||||
version: '1.1.1',
|
||||
// Brief, one-line summary of the package.
|
||||
summary: 'An algorithm for rate limiting anything',
|
||||
// URL to the Git repository containing the source code for this package.
|
||||
|
||||
@@ -164,6 +164,7 @@ class RateLimiter {
|
||||
}
|
||||
reply.allowed = false;
|
||||
reply.numInvocationsLeft = 0;
|
||||
reply.ruleId = rule.id;
|
||||
rule._executeCallback(reply, input);
|
||||
} else {
|
||||
// If this is an allowed attempt and we haven't failed on any of the
|
||||
@@ -174,6 +175,7 @@ class RateLimiter {
|
||||
reply.numInvocationsLeft = rule.options.numRequestsAllowed -
|
||||
numInvocations;
|
||||
}
|
||||
reply.ruleId = rule.id;
|
||||
rule._executeCallback(reply, input);
|
||||
}
|
||||
});
|
||||
|
||||
14
packages/react-fast-refresh/client-runtime.js
vendored
14
packages/react-fast-refresh/client-runtime.js
vendored
@@ -1,6 +1,6 @@
|
||||
const runtime = require('react-refresh/runtime');
|
||||
var runtime = require('react-refresh/runtime');
|
||||
|
||||
let timeout = null;
|
||||
var timeout = null;
|
||||
function scheduleRefresh() {
|
||||
if (!timeout) {
|
||||
timeout = setTimeout(function () {
|
||||
@@ -88,14 +88,14 @@ window.$RefreshSig$ = function () {
|
||||
return function (type) { return type; };
|
||||
};
|
||||
|
||||
const moduleInitialState = new WeakMap();
|
||||
var moduleInitialState = new WeakMap();
|
||||
|
||||
module.hot.onRequire({
|
||||
after: function (module) {
|
||||
// TODO: handle modules with errors
|
||||
|
||||
const beforeStates = moduleInitialState.get(module);
|
||||
const beforeState = beforeStates && beforeStates.pop();
|
||||
var beforeStates = moduleInitialState.get(module);
|
||||
var beforeState = beforeStates && beforeStates.pop();
|
||||
if (!beforeState) {
|
||||
return;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ module.exports = function setupModule (module) {
|
||||
return;
|
||||
}
|
||||
|
||||
let beforeStates = moduleInitialState.get(module);
|
||||
var beforeStates = moduleInitialState.get(module);
|
||||
|
||||
if (beforeStates === undefined) {
|
||||
beforeStates = [];
|
||||
@@ -129,7 +129,7 @@ module.exports = function setupModule (module) {
|
||||
|
||||
window.RefreshRuntime = runtime;
|
||||
window.$RefreshReg$ = function (type, _id) {
|
||||
const fullId = module.id + ' ' + _id;
|
||||
var fullId = module.id + ' ' + _id;
|
||||
RefreshRuntime.register(type, fullId);
|
||||
}
|
||||
window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
|
||||
|
||||
6
packages/react-fast-refresh/client.js
vendored
6
packages/react-fast-refresh/client.js
vendored
@@ -1,6 +1,6 @@
|
||||
let enabled = __meteor_runtime_config__ &&
|
||||
var enabled = __meteor_runtime_config__ &&
|
||||
__meteor_runtime_config__.reactFastRefreshEnabled;
|
||||
let hmrEnabled = !!module.hot;
|
||||
var hmrEnabled = !!module.hot;
|
||||
var setupModule;
|
||||
|
||||
function init(module) {
|
||||
@@ -16,7 +16,7 @@ if (
|
||||
hmrEnabled &&
|
||||
enabled
|
||||
) {
|
||||
let inBefore = false;
|
||||
var inBefore = false;
|
||||
module.hot.onRequire({
|
||||
before: function (module) {
|
||||
if (inBefore) {
|
||||
|
||||
2
packages/react-fast-refresh/package.js
vendored
2
packages/react-fast-refresh/package.js
vendored
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: 'react-fast-refresh',
|
||||
version: '0.2.6',
|
||||
version: '0.2.7',
|
||||
summary: 'Automatically update React components with HMR',
|
||||
documentation: 'README.md',
|
||||
devOnly: true,
|
||||
|
||||
@@ -8,7 +8,7 @@ import { StreamClientCommon } from "./common.js";
|
||||
// Statically importing SockJS here will prevent native WebSocket usage
|
||||
// below (in favor of SockJS), but will ensure maximum compatibility for
|
||||
// clients stuck in unusual networking environments.
|
||||
import "./sockjs-0.3.4.js";
|
||||
import SockJS from "./sockjs-1.6.1-min-.js";
|
||||
|
||||
export class ClientStream extends StreamClientCommon {
|
||||
// @param url {String} URL to Meteor app
|
||||
@@ -158,7 +158,7 @@ export class ClientStream extends StreamClientCommon {
|
||||
this._cleanup(); // cleanup the old socket, if there was one.
|
||||
|
||||
var options = {
|
||||
protocols_whitelist: this._sockjsProtocolsWhitelist(),
|
||||
transports: this._sockjsProtocolsWhitelist(),
|
||||
...this.options._sockjsOptions
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: "socket-stream-client",
|
||||
version: "0.5.0",
|
||||
version: '0.5.1',
|
||||
summary: "Provides the ClientStream abstraction used by ddp-client",
|
||||
documentation: "README.md"
|
||||
});
|
||||
@@ -15,7 +15,6 @@ Package.onUse(function(api) {
|
||||
api.use("modern-browsers");
|
||||
api.use("retry"); // TODO Try to remove this.
|
||||
|
||||
api.addFiles("sockjs-0.3.4.js", "legacy");
|
||||
api.mainModule("browser.js", "client", { lazy: true });
|
||||
|
||||
api.addFiles("server.js", "server");
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
3
packages/socket-stream-client/sockjs-1.6.1-min-.js
Normal file
3
packages/socket-stream-client/sockjs-1.6.1-min-.js
Normal file
File diff suppressed because one or more lines are too long
@@ -2,9 +2,9 @@
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"@babel/runtime": {
|
||||
"version": "7.18.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
|
||||
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw=="
|
||||
"version": "7.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
|
||||
"integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw=="
|
||||
},
|
||||
"braces": {
|
||||
"version": "3.0.2",
|
||||
@@ -22,9 +22,9 @@
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.0.tgz",
|
||||
"integrity": "sha512-pMu1vSJIwJPS/YuMJAJFjvKA2OC7rvgKqJHr90JmZ1kv/hO+MuzqHRSWqyn730vlOwc1Bx/c8+3izTGzmKyXNQ=="
|
||||
},
|
||||
"micromatch": {
|
||||
"version": "4.0.5",
|
||||
@@ -37,9 +37,9 @@
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.13.9",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
||||
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
||||
"version": "0.13.11",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
|
||||
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.7.4",
|
||||
@@ -50,11 +50,6 @@
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
|
||||
},
|
||||
"yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: 'standard-minifier-css',
|
||||
version: '1.9.0',
|
||||
version: '1.9.2',
|
||||
summary: 'Standard css minifier used with Meteor apps by default.',
|
||||
documentation: 'README.md',
|
||||
});
|
||||
@@ -13,9 +13,9 @@ Package.registerBuildPlugin({
|
||||
'logging',
|
||||
],
|
||||
npmDependencies: {
|
||||
"@babel/runtime": "7.18.9",
|
||||
"@babel/runtime": "7.21.0",
|
||||
"source-map": "0.7.4",
|
||||
"lru-cache": "6.0.0",
|
||||
"lru-cache": "8.0.0",
|
||||
"micromatch": "4.0.5",
|
||||
},
|
||||
sources: [
|
||||
@@ -24,7 +24,7 @@ Package.registerBuildPlugin({
|
||||
});
|
||||
|
||||
Package.onUse(function(api) {
|
||||
api.use('minifier-css@1.5.4');
|
||||
api.use('minifier-css@1.6.2');
|
||||
api.use('isobuild:minifier-plugin@1.0.0');
|
||||
api.use('logging@1.3.1');
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: "Dependency tracker to allow reactive callbacks",
|
||||
version: '1.3.1',
|
||||
version: '1.3.2',
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
|
||||
2
packages/tracker/tracker.d.ts
vendored
2
packages/tracker/tracker.d.ts
vendored
@@ -110,7 +110,7 @@ export namespace Tracker {
|
||||
): Computation;
|
||||
|
||||
/**
|
||||
* Helper function to make the tracker work with promises.
|
||||
* @summary Helper function to make the tracker work with promises.
|
||||
* @param computation Computation that tracked
|
||||
* @param func async function that needs to be called and be reactive
|
||||
*/
|
||||
|
||||
@@ -594,6 +594,11 @@ Tracker.nonreactive = function (f) {
|
||||
return Tracker.withComputation(null, f);
|
||||
};
|
||||
|
||||
/**
|
||||
* @summary Helper function to make the tracker work with promises.
|
||||
* @param computation Computation that tracked
|
||||
* @param func async function that needs to be called and be reactive
|
||||
*/
|
||||
Tracker.withComputation = function (computation, f) {
|
||||
var previousComputation = Tracker.currentComputation;
|
||||
|
||||
|
||||
1
packages/underscore/.npm/package/.gitignore
vendored
Normal file
1
packages/underscore/.npm/package/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
node_modules
|
||||
7
packages/underscore/.npm/package/README
Normal file
7
packages/underscore/.npm/package/README
Normal file
@@ -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.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user