mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Merge branch 'release-3.0' into update-meteor-vite
This commit is contained in:
@@ -53,7 +53,7 @@ insensitive duplicates before updates.
|
||||
|
||||
{% apibox "Accounts.setUsername" %}
|
||||
|
||||
{% apibox "Accounts.addEmail" %}
|
||||
{% apibox "Accounts.addEmailAsync" %}
|
||||
|
||||
By default, an email address is added with `{ verified: false }`. Use
|
||||
[`Accounts.sendVerificationEmail`](#Accounts-sendVerificationEmail) to send an
|
||||
|
||||
4189
package-lock.json
generated
4189
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -2,9 +2,9 @@
|
||||
"lockfileVersion": 4,
|
||||
"dependencies": {
|
||||
"@types/node": {
|
||||
"version": "20.14.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
|
||||
"integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q=="
|
||||
"version": "20.14.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz",
|
||||
"integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg=="
|
||||
},
|
||||
"@types/notp": {
|
||||
"version": "2.0.5",
|
||||
|
||||
@@ -34,9 +34,17 @@ const VALID_CONFIG_KEYS = [
|
||||
*/
|
||||
export class AccountsCommon {
|
||||
constructor(options) {
|
||||
// Validate config options keys
|
||||
for (const key of Object.keys(options)) {
|
||||
if (!VALID_CONFIG_KEYS.includes(key)) {
|
||||
// TODO Consider just logging a debug message instead to allow for additional keys in the settings here?
|
||||
throw new Meteor.Error(`Accounts.config: Invalid key: ${key}`);
|
||||
}
|
||||
}
|
||||
|
||||
// Currently this is read directly by packages like accounts-password
|
||||
// and accounts-ui-unstyled.
|
||||
this._options = {};
|
||||
this._options = options || {};
|
||||
|
||||
// Note that setting this.connection = null causes this.users to be a
|
||||
// LocalCollection, which is not what we want.
|
||||
@@ -274,15 +282,15 @@ export class AccountsCommon {
|
||||
}
|
||||
|
||||
// Validate config options keys
|
||||
Object.keys(options).forEach(key => {
|
||||
for (const key of Object.keys(options)) {
|
||||
if (!VALID_CONFIG_KEYS.includes(key)) {
|
||||
// TODO Consider just logging a debug message instead to allow for additional keys in the settings here?
|
||||
throw new Meteor.Error(`Accounts.config: Invalid key: ${key}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// set values in Accounts._options
|
||||
VALID_CONFIG_KEYS.forEach(key => {
|
||||
for (const key of VALID_CONFIG_KEYS) {
|
||||
if (key in options) {
|
||||
if (key in this._options) {
|
||||
if (key !== 'collection' && (Meteor.isTest && key !== 'clientStorage')) {
|
||||
@@ -291,7 +299,7 @@ export class AccountsCommon {
|
||||
}
|
||||
this._options[key] = options[key];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (options.collection && options.collection !== this.users._name && options.collection !== this.users) {
|
||||
this.users = this._initializeCollection(options);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import crypto from 'crypto';
|
||||
import { Meteor } from 'meteor/meteor'
|
||||
import { Meteor } from 'meteor/meteor';
|
||||
import {
|
||||
AccountsCommon,
|
||||
EXPIRE_TOKENS_INTERVAL_MS,
|
||||
|
||||
@@ -4,9 +4,9 @@ import { AccountsServer } from "./accounts_server.js";
|
||||
* @namespace Accounts
|
||||
* @summary The namespace for all server-side accounts-related methods.
|
||||
*/
|
||||
Accounts = new AccountsServer(Meteor.server, Meteor.settings.packages?.accounts || {});
|
||||
Accounts = new AccountsServer(Meteor.server, { ...Meteor.settings.packages?.accounts, ...Meteor.settings.packages?.['accounts-base'] });
|
||||
// TODO[FIBERS]: I need TLA
|
||||
Accounts.init().then()
|
||||
Accounts.init().then();
|
||||
// Users table. Don't use the normal autopublish, since we want to hide
|
||||
// some fields. Code to autopublish this is in accounts_server.js.
|
||||
// XXX Allow users to configure this collection name.
|
||||
|
||||
@@ -830,7 +830,7 @@ Meteor.methods(
|
||||
});
|
||||
|
||||
/**
|
||||
* @summary Add an email asynchronously address for a user. Use this instead of directly
|
||||
* @summary Asynchronously add an email address for a user. Use this instead of directly
|
||||
* updating the database. The operation will fail if there is a different user
|
||||
* with an email only differing in case. If the specified user has an existing
|
||||
* email only differing in case however, we replace it.
|
||||
@@ -841,8 +841,7 @@ Meteor.methods(
|
||||
* be marked as verified. Defaults to false.
|
||||
* @importFromPackage accounts-base
|
||||
*/
|
||||
Accounts.addEmail =
|
||||
async (userId, newEmail, verified) => {
|
||||
Accounts.addEmailAsync = async (userId, newEmail, verified) => {
|
||||
check(userId, NonEmptyString);
|
||||
check(newEmail, NonEmptyString);
|
||||
check(verified, Match.Optional(Boolean));
|
||||
@@ -851,9 +850,8 @@ Accounts.addEmail =
|
||||
verified = false;
|
||||
}
|
||||
|
||||
const user = await getUserById(userId, {fields: {emails: 1}});
|
||||
if (!user)
|
||||
throw new Meteor.Error(403, "User not found");
|
||||
const user = await getUserById(userId, { fields: { emails: 1 } });
|
||||
if (!user) throw new Meteor.Error(403, "User not found");
|
||||
|
||||
// Allow users to change their own email to a version with a different case
|
||||
|
||||
@@ -863,32 +861,35 @@ Accounts.addEmail =
|
||||
// then we are OK and (2) if this would create a conflict with other users
|
||||
// then there would already be a case-insensitive duplicate and we can't fix
|
||||
// that in this code anyway.
|
||||
const caseInsensitiveRegExp =
|
||||
new RegExp(`^${Meteor._escapeRegExp(newEmail)}$`, 'i');
|
||||
const caseInsensitiveRegExp = new RegExp(
|
||||
`^${Meteor._escapeRegExp(newEmail)}$`,
|
||||
"i"
|
||||
);
|
||||
|
||||
// TODO: This is a linear search. If we have a lot of emails.
|
||||
// we should consider using a different data structure.
|
||||
const updatedEmail =
|
||||
async (emails = [], _id) => {
|
||||
let updated = false;
|
||||
for (const email of emails) {
|
||||
if (caseInsensitiveRegExp.test(email.address)) {
|
||||
await Meteor.users.updateAsync({
|
||||
_id: _id,
|
||||
'emails.address': email.address
|
||||
}, {
|
||||
$set: {
|
||||
'emails.$.address': newEmail,
|
||||
'emails.$.verified': verified
|
||||
}
|
||||
});
|
||||
updated = true;
|
||||
const updatedEmail = async (emails = [], _id) => {
|
||||
let updated = false;
|
||||
for (const email of emails) {
|
||||
if (caseInsensitiveRegExp.test(email.address)) {
|
||||
await Meteor.users.updateAsync(
|
||||
{
|
||||
_id: _id,
|
||||
"emails.address": email.address,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
"emails.$.address": newEmail,
|
||||
"emails.$.verified": verified,
|
||||
},
|
||||
}
|
||||
}
|
||||
return updated;
|
||||
);
|
||||
updated = true;
|
||||
}
|
||||
const didUpdateOwnEmail =
|
||||
await updatedEmail(user.emails, user._id);
|
||||
}
|
||||
return updated;
|
||||
};
|
||||
const didUpdateOwnEmail = await updatedEmail(user.emails, user._id);
|
||||
|
||||
// In the other updates below, we have to do another call to
|
||||
// checkForCaseInsensitiveDuplicates to make sure that no conflicting values
|
||||
@@ -902,32 +903,45 @@ Accounts.addEmail =
|
||||
}
|
||||
|
||||
// Perform a case insensitive check for duplicates before update
|
||||
await Accounts._checkForCaseInsensitiveDuplicates('emails.address',
|
||||
'Email', newEmail, user._id);
|
||||
await Accounts._checkForCaseInsensitiveDuplicates(
|
||||
"emails.address",
|
||||
"Email",
|
||||
newEmail,
|
||||
user._id
|
||||
);
|
||||
|
||||
await Meteor.users.updateAsync({
|
||||
_id: user._id
|
||||
}, {
|
||||
$addToSet: {
|
||||
emails: {
|
||||
address: newEmail,
|
||||
verified: verified
|
||||
}
|
||||
await Meteor.users.updateAsync(
|
||||
{
|
||||
_id: user._id,
|
||||
},
|
||||
{
|
||||
$addToSet: {
|
||||
emails: {
|
||||
address: newEmail,
|
||||
verified: verified,
|
||||
},
|
||||
},
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
// Perform another check after update, in case a matching user has been
|
||||
// inserted in the meantime
|
||||
try {
|
||||
await Accounts._checkForCaseInsensitiveDuplicates('emails.address',
|
||||
'Email', newEmail, user._id);
|
||||
await Accounts._checkForCaseInsensitiveDuplicates(
|
||||
"emails.address",
|
||||
"Email",
|
||||
newEmail,
|
||||
user._id
|
||||
);
|
||||
} catch (ex) {
|
||||
// Undo update if the check fails
|
||||
await Meteor.users.updateAsync({_id: user._id},
|
||||
{$pull: {emails: {address: newEmail}}});
|
||||
await Meteor.users.updateAsync(
|
||||
{ _id: user._id },
|
||||
{ $pull: { emails: { address: newEmail } } }
|
||||
);
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @summary Remove an email address asynchronously for a user. Use this instead of updating
|
||||
|
||||
@@ -1690,10 +1690,10 @@ if (Meteor.isServer) (() => {
|
||||
});
|
||||
|
||||
const newEmail = `${ Random.id() }@turing.com`;
|
||||
await Accounts.addEmail(userId, newEmail);
|
||||
await Accounts.addEmailAsync(userId, newEmail);
|
||||
|
||||
const thirdEmail = `${ Random.id() }@turing.com`;
|
||||
await Accounts.addEmail(userId, thirdEmail, true);
|
||||
await Accounts.addEmailAsync(userId, thirdEmail, true);
|
||||
const u1 = await Accounts._findUserByQuery({ id: userId })
|
||||
test.equal(u1.emails, [
|
||||
{ address: origEmail, verified: false },
|
||||
@@ -1733,7 +1733,7 @@ if (Meteor.isServer) (() => {
|
||||
});
|
||||
|
||||
const newEmail = `${ Random.id() }@turing.com`;
|
||||
await Accounts.addEmail(userId, newEmail);
|
||||
await Accounts.addEmailAsync(userId, newEmail);
|
||||
const u1 = await Accounts._findUserByQuery({ id: userId })
|
||||
test.equal(u1.emails, [
|
||||
{ address: newEmail, verified: false },
|
||||
@@ -1749,10 +1749,10 @@ if (Meteor.isServer) (() => {
|
||||
});
|
||||
|
||||
const newEmail = `${ Random.id() }@turing.com`;
|
||||
await Accounts.addEmail(userId, newEmail);
|
||||
await Accounts.addEmailAsync(userId, newEmail);
|
||||
|
||||
const thirdEmail = origEmail.toUpperCase();
|
||||
await Accounts.addEmail(userId, thirdEmail, true);
|
||||
await Accounts.addEmailAsync(userId, thirdEmail, true);
|
||||
const u1 = await Accounts._findUserByQuery({ id: userId })
|
||||
test.equal(u1.emails, [
|
||||
{ address: thirdEmail, verified: true },
|
||||
@@ -1775,7 +1775,7 @@ if (Meteor.isServer) (() => {
|
||||
|
||||
const dupEmail = user1Email.toUpperCase();
|
||||
await test.throwsAsync(
|
||||
async () => await Accounts.addEmail(userId2, dupEmail),
|
||||
async () => await Accounts.addEmailAsync(userId2, dupEmail),
|
||||
/Email already exists/
|
||||
);
|
||||
|
||||
@@ -1797,10 +1797,10 @@ if (Meteor.isServer) (() => {
|
||||
});
|
||||
|
||||
const newEmail = `${ Random.id() }@turing.com`;
|
||||
await Accounts.addEmail(userId, newEmail);
|
||||
await Accounts.addEmailAsync(userId, newEmail);
|
||||
|
||||
const thirdEmail = `${ Random.id() }@turing.com`;
|
||||
await Accounts.addEmail(userId, thirdEmail, true);
|
||||
await Accounts.addEmailAsync(userId, thirdEmail, true);
|
||||
const u1 = await Accounts._findUserByQuery({ id: userId })
|
||||
test.equal(u1.emails, [
|
||||
{ address: origEmail, verified: false },
|
||||
|
||||
@@ -121,7 +121,7 @@ export const loadAsyncStubHelpers = () => {
|
||||
Meteor._setImmediate(() => {
|
||||
if (hasStub && !finished) {
|
||||
console.warn(
|
||||
`Method stub (${name}) took too long and could cause unexpected problems. Learn more at https://github.com/zodern/fix-async-stubs/#limitations`
|
||||
`Method stub (${name}) took too long and could cause unexpected problems. Learn more at https://v3-migration-docs.meteor.com/breaking-changes/call-x-callAsync.html#considerations-for-effective-use-of-meteor-callasync`
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -613,6 +613,11 @@ export class Connection {
|
||||
try {
|
||||
stubOptions.stubReturnValue = DDP._CurrentMethodInvocation
|
||||
.withValue(invocation, stubInvocation);
|
||||
if (Meteor._isPromise(stubOptions.stubReturnValue)) {
|
||||
Meteor._debug(
|
||||
`Method ${name}: Calling a method that has an async method stub with call/apply can lead to unexpected behaviors. Use callAsync/applyAsync instead.`
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
stubOptions.exception = e;
|
||||
}
|
||||
|
||||
@@ -1203,7 +1203,7 @@ Object.assign(Subscription.prototype, {
|
||||
// Both conventional and async publish handler functions are supported.
|
||||
// If an object is returned with a then() function, it is either a promise
|
||||
// or thenable and will be resolved asynchronously.
|
||||
const isThenable =
|
||||
const isThenable =
|
||||
resultOrThenable && typeof resultOrThenable.then === 'function';
|
||||
if (isThenable) {
|
||||
try {
|
||||
|
||||
6
packages/email/.npm/package/npm-shrinkwrap.json
generated
6
packages/email/.npm/package/npm-shrinkwrap.json
generated
@@ -2,9 +2,9 @@
|
||||
"lockfileVersion": 4,
|
||||
"dependencies": {
|
||||
"@types/node": {
|
||||
"version": "20.14.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
|
||||
"integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q=="
|
||||
"version": "20.14.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz",
|
||||
"integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg=="
|
||||
},
|
||||
"@types/nodemailer": {
|
||||
"version": "6.4.14",
|
||||
|
||||
@@ -35,30 +35,19 @@ EVp.getOrNullIfOutsideFiber = function () {
|
||||
* @returns {any} The return value of the function
|
||||
*/
|
||||
EVp.withValue = function (value, func) {
|
||||
// WARNING: Do not change the behavior of this function.
|
||||
// If you compare this function to it's version in the server-side, you'll see that there we handle async results.
|
||||
// In the client we don't need to do this. If we try to, it can lead to problems like this:
|
||||
// https://github.com/meteor/meteor/pull/13198#issuecomment-2181254734/.
|
||||
var saved = currentValues[this.slot];
|
||||
|
||||
try {
|
||||
currentValues[this.slot] = value;
|
||||
|
||||
var ret = func();
|
||||
var isPromise = Meteor._isPromise(ret);
|
||||
|
||||
if (isPromise) {
|
||||
var self = this;
|
||||
return ret.then(function (res) {
|
||||
currentValues[self.slot] = saved;
|
||||
return res
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
throw e;
|
||||
return func();
|
||||
} finally {
|
||||
if (!isPromise) {
|
||||
currentValues[this.slot] = saved;
|
||||
}
|
||||
currentValues[this.slot] = saved;
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
EVp._set = function (context) {
|
||||
|
||||
@@ -164,13 +164,18 @@ Meteor.bindEnvironment = (func, onException, _this) => {
|
||||
|
||||
var runWithEnvironment = function () {
|
||||
return Meteor._runAsync(
|
||||
async () => {
|
||||
() => {
|
||||
let ret;
|
||||
try {
|
||||
if (currentSlot) {
|
||||
Meteor._updateAslStore(CURRENT_VALUE_KEY_NAME, dynamics);
|
||||
}
|
||||
ret = await func.apply(_this, args);
|
||||
ret = func.apply(_this, args);
|
||||
|
||||
// Using this strategy to be consistent between client and server and stop always returning a promise from the server
|
||||
if (Meteor._isPromise(ret)) {
|
||||
ret = ret.catch(onException);
|
||||
}
|
||||
} catch (e) {
|
||||
onException(e);
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ if (Meteor.isServer) {
|
||||
Tinytest.addAsync("environment - bindEnvironment", async function (test) {
|
||||
var raised_f;
|
||||
|
||||
var f = await CurrentFoo.withValue(17, function () {
|
||||
var f = CurrentFoo.withValue(17, function () {
|
||||
return Meteor.bindEnvironment(function (flag) {
|
||||
test.equal(CurrentFoo.get(), 17);
|
||||
if (flag)
|
||||
@@ -100,13 +100,13 @@ Tinytest.addAsync("environment - bindEnvironment", async function (test) {
|
||||
});
|
||||
});
|
||||
|
||||
var test_f = async function () {
|
||||
var test_f = function () {
|
||||
raised_f = null;
|
||||
|
||||
test.equal(await f(false), 12);
|
||||
test.equal(f(false), 12);
|
||||
test.equal(raised_f, null);
|
||||
|
||||
test.equal(await f(true), undefined);
|
||||
test.equal(f(true), undefined);
|
||||
test.equal(raised_f, "test", 'raised_f should be "test"');
|
||||
};
|
||||
|
||||
@@ -117,9 +117,9 @@ Tinytest.addAsync("environment - bindEnvironment", async function (test) {
|
||||
|
||||
// Inside a withValue
|
||||
|
||||
await CurrentFoo.withValue(22, async function () {
|
||||
CurrentFoo.withValue(22, function () {
|
||||
test.equal(CurrentFoo.get(), 22);
|
||||
await test_f();
|
||||
test_f();
|
||||
test.equal(CurrentFoo.get(), 22);
|
||||
});
|
||||
|
||||
@@ -228,4 +228,4 @@ Tinytest.add('environment - consistent ev value', function (test) {
|
||||
let ev1 = new Meteor.EnvironmentVariable();
|
||||
const ret = ev1.withValue(10, () => 5);
|
||||
test.equal(ret, 5);
|
||||
})
|
||||
})
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="
|
||||
},
|
||||
"acorn": {
|
||||
"version": "8.11.3",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
||||
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
|
||||
"version": "8.12.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
|
||||
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw=="
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.2",
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
|
||||
},
|
||||
"acorn": {
|
||||
"version": "8.11.3",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
||||
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
|
||||
"version": "8.12.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
|
||||
"integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg=="
|
||||
},
|
||||
"estree-walker": {
|
||||
"version": "2.0.2",
|
||||
|
||||
@@ -4321,25 +4321,14 @@ testAsyncMulti(
|
||||
},
|
||||
);
|
||||
|
||||
// Using remote collection
|
||||
await Collection.insertAsync({ _id: 'a' });
|
||||
await Collection.updateAsync({ _id: 'a' }, { $set: { num: 1 } });
|
||||
const insertedId = await Collection.insertAsync({ num: 2 });
|
||||
await Collection.insertAsync({ _id: 'b' });
|
||||
|
||||
let items = await Collection.find().fetchAsync();
|
||||
let itemIds = items.map(_item => _item._id);
|
||||
test.equal(itemIds, ['a', insertedId]); // temporary data accessible
|
||||
|
||||
const aItem = items[0];
|
||||
const insertedItem = items[1];
|
||||
test.equal(aItem?.num, 1);
|
||||
test.equal(insertedItem?.num, 2);
|
||||
|
||||
await Collection.removeAsync({ _id: insertedId });
|
||||
|
||||
items = await Collection.find().fetchAsync();
|
||||
itemIds = items.map(_item => _item._id);
|
||||
|
||||
test.equal(itemIds, ['a']); // temporary data accessible
|
||||
test.equal(itemIds, ['a', 'b']);
|
||||
|
||||
if (Meteor.isClient) {
|
||||
return waitUntil(async () => {
|
||||
|
||||
421
packages/npm-mongo/.npm/package/npm-shrinkwrap.json
generated
421
packages/npm-mongo/.npm/package/npm-shrinkwrap.json
generated
@@ -1,175 +1,169 @@
|
||||
{
|
||||
"lockfileVersion": 4,
|
||||
"dependencies": {
|
||||
"@aws-crypto/ie11-detection": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz",
|
||||
"integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==",
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-crypto/sha256-browser": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz",
|
||||
"integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==",
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
|
||||
"integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
"@smithy/is-array-buffer": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
|
||||
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="
|
||||
},
|
||||
"@smithy/util-buffer-from": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
|
||||
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="
|
||||
},
|
||||
"@smithy/util-utf8": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
|
||||
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-crypto/sha256-js": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz",
|
||||
"integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==",
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
}
|
||||
}
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
|
||||
"integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA=="
|
||||
},
|
||||
"@aws-crypto/supports-web-crypto": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz",
|
||||
"integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==",
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
}
|
||||
}
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
|
||||
"integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg=="
|
||||
},
|
||||
"@aws-crypto/util": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz",
|
||||
"integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==",
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
|
||||
"integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
"@smithy/is-array-buffer": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
|
||||
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="
|
||||
},
|
||||
"@smithy/util-buffer-from": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
|
||||
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="
|
||||
},
|
||||
"@smithy/util-utf8": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
|
||||
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-cognito-identity": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.592.0.tgz",
|
||||
"integrity": "sha512-mk3JOBsk5hlrLTZFuoGIhFKFflOdxqMKmOgyUFs5+gBLuH0/lN3wNWJxk+BiY1nHzkxhBND1hDHc5dvZRugBJA=="
|
||||
"version": "3.606.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.606.0.tgz",
|
||||
"integrity": "sha512-CJ3kovUg7HAn3trqo0WxVw3PJoaHxiGU1U+Ok8Vx/sL81+auyyiasT09M/NcchRqwAooKvUi44sVD0ih7Zi9Nw=="
|
||||
},
|
||||
"@aws-sdk/client-sso": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.592.0.tgz",
|
||||
"integrity": "sha512-w+SuW47jQqvOC7fonyjFjsOh3yjqJ+VpWdVrmrl0E/KryBE7ho/Wn991Buf/EiHHeJikoWgHsAIPkBH29+ntdA=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.598.0.tgz",
|
||||
"integrity": "sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw=="
|
||||
},
|
||||
"@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.592.0.tgz",
|
||||
"integrity": "sha512-11Zvm8nm0s/UF3XCjzFRpQU+8FFVW5rcr3BHfnH6xAe5JEoN6bJN/n+wOfnElnjek+90hh+Qc7s141AMrCjiiw=="
|
||||
"version": "3.606.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.606.0.tgz",
|
||||
"integrity": "sha512-gL1FHPS6hwgMNS/A+Qh5bUyHOeRVOqdb7c6+i+9gR3wtGvt2lvoSm8w5DhS08Xiiacz2AqYRDEapp0xuyCrbBQ=="
|
||||
},
|
||||
"@aws-sdk/client-sts": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.592.0.tgz",
|
||||
"integrity": "sha512-KUrOdszZfcrlpKr4dpdkGibZ/qq3Lnfu1rjv1U+V1QJQ9OuMo9J3sDWpWV9tigNqY0aGllarWH5cJbz9868W/w=="
|
||||
"version": "3.606.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.606.0.tgz",
|
||||
"integrity": "sha512-b11mAhjrkm3MMiAPoMGcmd6vsaz2120lg8rHG/NZCo9vB1K6Kc7WP+a1Q05TRMseer2egTtpWJfn44aVO97VqA=="
|
||||
},
|
||||
"@aws-sdk/core": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.592.0.tgz",
|
||||
"integrity": "sha512-gLPMXR/HXDP+9gXAt58t7gaMTvRts9i6Q7NMISpkGF54wehskl5WGrbdtHJFylrlJ5BQo3XVY6i661o+EuR1wg=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.598.0.tgz",
|
||||
"integrity": "sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-cognito-identity": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.592.0.tgz",
|
||||
"integrity": "sha512-uHiMPCkFhZOhlSfKgVqPhMdruiOuVkLUn07gQqvxHYhFKkEOPV+6BZbPKBwBTXr8TIREztQzCMPswa5pGk2zbQ=="
|
||||
"version": "3.606.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.606.0.tgz",
|
||||
"integrity": "sha512-4wGvXilFLkozs4/dMnn9NvxZbL9oyyReoF9aR3kGUZ0QVO8cCBp/Zkr8IXZifhVBo9/esJdMFnR9lEXR7Yuleg=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-env": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.587.0.tgz",
|
||||
"integrity": "sha512-Hyg/5KFECIk2k5o8wnVEiniV86yVkhn5kzITUydmNGCkXdBFHMHRx6hleQ1bqwJHbBskyu8nbYamzcwymmGwmw=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.598.0.tgz",
|
||||
"integrity": "sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-http": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.587.0.tgz",
|
||||
"integrity": "sha512-Su1SRWVRCuR1e32oxX3C1V4c5hpPN20WYcRfdcr2wXwHqSvys5DrnmuCC+JoEnS/zt3adUJhPliTqpfKgSdMrA=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.598.0.tgz",
|
||||
"integrity": "sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.592.0.tgz",
|
||||
"integrity": "sha512-3kG6ngCIOPbLJZZ3RV+NsU7HVK6vX1+1DrPJKj9fVlPYn7IXsk8NAaUT5885yC7+jKizjv0cWLrLKvAJV5gfUA=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.598.0.tgz",
|
||||
"integrity": "sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-node": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.592.0.tgz",
|
||||
"integrity": "sha512-BguihBGTrEjVBQ07hm+ZsO29eNJaxwBwUZMftgGAm2XcMIEClNPfm5hydxu2BmA4ouIJQJ6nG8pNYghEumM+Aw=="
|
||||
"version": "3.600.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.600.0.tgz",
|
||||
"integrity": "sha512-1pC7MPMYD45J7yFjA90SxpR0yaSvy+yZiq23aXhAPZLYgJBAxHLu0s0mDCk/piWGPh8+UGur5K0bVdx4B1D5hw=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-process": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.587.0.tgz",
|
||||
"integrity": "sha512-V4xT3iCqkF8uL6QC4gqBJg/2asd/damswP1h9HCfqTllmPWzImS+8WD3VjgTLw5b0KbTy+ZdUhKc0wDnyzkzxg=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.598.0.tgz",
|
||||
"integrity": "sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.592.0.tgz",
|
||||
"integrity": "sha512-fYFzAdDHKHvhtufPPtrLdSv8lO6GuW3em6n3erM5uFdpGytNpjXvr3XGokIsuXcNkETAY/Xihg+G9ksNE8WJxQ=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.598.0.tgz",
|
||||
"integrity": "sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-web-identity": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.587.0.tgz",
|
||||
"integrity": "sha512-XqIx/I2PG7kyuw3WjAP9wKlxy8IvFJwB8asOFT1xPFoVfZYKIogjG9oLP5YiRtfvDkWIztHmg5MlVv3HdJDGRw=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.598.0.tgz",
|
||||
"integrity": "sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w=="
|
||||
},
|
||||
"@aws-sdk/credential-providers": {
|
||||
"version": "3.592.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.592.0.tgz",
|
||||
"integrity": "sha512-fHAt001Aemiy9p8VtLKWiPQ36g1YgiLC1pm31W+WmKxU663dbt2yYTIAyVOB1nQC7HrVCOZEg2FU0TtuZt/wXQ=="
|
||||
"version": "3.606.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.606.0.tgz",
|
||||
"integrity": "sha512-34hswGNDWBFvp4Hi4Gv9DIJ4Ks0Nbg8w3emFsPVHLqqI6X2Wd0hJTf+mi1kMhy/AQXt5LisKLw6wjNIKD2+KGg=="
|
||||
},
|
||||
"@aws-sdk/middleware-host-header": {
|
||||
"version": "3.577.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz",
|
||||
"integrity": "sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.598.0.tgz",
|
||||
"integrity": "sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA=="
|
||||
},
|
||||
"@aws-sdk/middleware-logger": {
|
||||
"version": "3.577.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz",
|
||||
"integrity": "sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.598.0.tgz",
|
||||
"integrity": "sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q=="
|
||||
},
|
||||
"@aws-sdk/middleware-recursion-detection": {
|
||||
"version": "3.577.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz",
|
||||
"integrity": "sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.598.0.tgz",
|
||||
"integrity": "sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ=="
|
||||
},
|
||||
"@aws-sdk/middleware-user-agent": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.587.0.tgz",
|
||||
"integrity": "sha512-SyDomN+IOrygLucziG7/nOHkjUXES5oH5T7p8AboO8oakMQJdnudNXiYWTicQWO52R51U6CR27rcMPTGeMedYA=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.598.0.tgz",
|
||||
"integrity": "sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg=="
|
||||
},
|
||||
"@aws-sdk/region-config-resolver": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.587.0.tgz",
|
||||
"integrity": "sha512-93I7IPZtulZQoRK+O20IJ4a1syWwYPzoO2gc3v+/GNZflZPV3QJXuVbIm0pxBsu0n/mzKGUKqSOLPIaN098HcQ=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.598.0.tgz",
|
||||
"integrity": "sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw=="
|
||||
},
|
||||
"@aws-sdk/token-providers": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.587.0.tgz",
|
||||
"integrity": "sha512-ULqhbnLy1hmJNRcukANBWJmum3BbjXnurLPSFXoGdV0llXYlG55SzIla2VYqdveQEEjmsBuTZdFvXAtNpmS5Zg=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.598.0.tgz",
|
||||
"integrity": "sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA=="
|
||||
},
|
||||
"@aws-sdk/types": {
|
||||
"version": "3.577.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.577.0.tgz",
|
||||
"integrity": "sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.598.0.tgz",
|
||||
"integrity": "sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ=="
|
||||
},
|
||||
"@aws-sdk/util-endpoints": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.587.0.tgz",
|
||||
"integrity": "sha512-8I1HG6Em8wQWqKcRW6m358mqebRVNpL8XrrEoT4In7xqkKkmYtHRNVYP6lcmiQh5pZ/c/FXu8dSchuFIWyEtqQ=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.598.0.tgz",
|
||||
"integrity": "sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ=="
|
||||
},
|
||||
"@aws-sdk/util-locate-window": {
|
||||
"version": "3.568.0",
|
||||
@@ -177,19 +171,14 @@
|
||||
"integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig=="
|
||||
},
|
||||
"@aws-sdk/util-user-agent-browser": {
|
||||
"version": "3.577.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz",
|
||||
"integrity": "sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.598.0.tgz",
|
||||
"integrity": "sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw=="
|
||||
},
|
||||
"@aws-sdk/util-user-agent-node": {
|
||||
"version": "3.587.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.587.0.tgz",
|
||||
"integrity": "sha512-Pnl+DUe/bvnbEEDHP3iVJrOtE3HbFJBPgsD6vJ+ml/+IYk1Eq49jEG+EHZdNTPz3SDG0kbp2+7u41MKYJHR/iQ=="
|
||||
},
|
||||
"@aws-sdk/util-utf8-browser": {
|
||||
"version": "3.259.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
|
||||
"integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw=="
|
||||
"version": "3.598.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.598.0.tgz",
|
||||
"integrity": "sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A=="
|
||||
},
|
||||
"@mongodb-js/saslprep": {
|
||||
"version": "1.1.7",
|
||||
@@ -197,39 +186,39 @@
|
||||
"integrity": "sha512-dCHW/oEX0KJ4NjDULBo3JiOaK5+6axtpBbS+ao2ZInoAL9/YRQLhXzSNAFz7hP4nzLkIqsfYAK/PDE3+XHny0Q=="
|
||||
},
|
||||
"@smithy/abort-controller": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.0.0.tgz",
|
||||
"integrity": "sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA=="
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.1.tgz",
|
||||
"integrity": "sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ=="
|
||||
},
|
||||
"@smithy/config-resolver": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.1.tgz",
|
||||
"integrity": "sha512-hbkYJc20SBDz2qqLzttjI/EqXemtmWk0ooRznLsiXp3066KQRTvuKHa7U4jCZCJq6Dozqvy0R1/vNESC9inPJg=="
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.4.tgz",
|
||||
"integrity": "sha512-VwiOk7TwXoE7NlNguV/aPq1hFH72tqkHCw8eWXbr2xHspRyyv9DLpLXhq+Ieje+NwoqXrY0xyQjPXdOE6cGcHA=="
|
||||
},
|
||||
"@smithy/core": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.0.tgz",
|
||||
"integrity": "sha512-ygLZSSKgt9bR8HAxR9mK+U5obvAJBr6zlQuhN5soYWx/amjDoQN4dTkydTypgKe6rIbUjTILyLU+W5XFwXr4kg=="
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.4.tgz",
|
||||
"integrity": "sha512-qdY3LpMOUyLM/gfjjMQZui+UTNS7kBRDWlvyIhVOql5dn2J3isk9qUTBtQ1CbDH8MTugHis1zu3h4rH+Qmmh4g=="
|
||||
},
|
||||
"@smithy/credential-provider-imds": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.0.tgz",
|
||||
"integrity": "sha512-q4A4d38v8pYYmseu/jTS3Z5I3zXlEOe5Obi+EJreVKgSVyWUHOd7/yaVCinC60QG4MRyCs98tcxBH1IMC0bu7Q=="
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.3.tgz",
|
||||
"integrity": "sha512-U1Yrv6hx/mRK6k8AncuI6jLUx9rn0VVSd9NPEX6pyYFBfkSkChOc/n4zUb8alHUVg83TbI4OdZVo1X0Zfj3ijA=="
|
||||
},
|
||||
"@smithy/fetch-http-handler": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz",
|
||||
"integrity": "sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg=="
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.0.tgz",
|
||||
"integrity": "sha512-vFvDxMrc6sO5Atec8PaISckMcAwsCrRhYxwUylg97bRT2KZoumOF7qk5+6EVUtuM1IG9AJV5aqXnHln9ZdXHpg=="
|
||||
},
|
||||
"@smithy/hash-node": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.0.tgz",
|
||||
"integrity": "sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.3.tgz",
|
||||
"integrity": "sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw=="
|
||||
},
|
||||
"@smithy/invalid-dependency": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz",
|
||||
"integrity": "sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz",
|
||||
"integrity": "sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw=="
|
||||
},
|
||||
"@smithy/is-array-buffer": {
|
||||
"version": "3.0.0",
|
||||
@@ -237,89 +226,89 @@
|
||||
"integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ=="
|
||||
},
|
||||
"@smithy/middleware-content-length": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz",
|
||||
"integrity": "sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.3.tgz",
|
||||
"integrity": "sha512-Dbz2bzexReYIQDWMr+gZhpwBetNXzbhnEMhYKA6urqmojO14CsXjnsoPYO8UL/xxcawn8ZsuVU61ElkLSltIUQ=="
|
||||
},
|
||||
"@smithy/middleware-endpoint": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.1.tgz",
|
||||
"integrity": "sha512-lQ/UOdGD4KM5kLZiAl0q8Qy3dPbynvAXKAdXnYlrA1OpaUwr+neSsVokDZpY6ZVb5Yx8jnus29uv6XWpM9P4SQ=="
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.4.tgz",
|
||||
"integrity": "sha512-whUJMEPwl3ANIbXjBXZVdJNgfV2ZU8ayln7xUM47rXL2txuenI7jQ/VFFwCzy5lCmXScjp6zYtptW5Evud8e9g=="
|
||||
},
|
||||
"@smithy/middleware-retry": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.3.tgz",
|
||||
"integrity": "sha512-Wve1qzJb83VEU/6q+/I0cQdAkDnuzELC6IvIBwDzUEiGpKqXgX1v10FUuZGbRS6Ov/P+HHthcAoHOJZQvZNAkA=="
|
||||
"version": "3.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.7.tgz",
|
||||
"integrity": "sha512-f5q7Y09G+2h5ivkSx5CHvlAT4qRR3jBFEsfXyQ9nFNiWQlr8c48blnu5cmbTQ+p1xmIO14UXzKoF8d7Tm0Gsjw=="
|
||||
},
|
||||
"@smithy/middleware-serde": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz",
|
||||
"integrity": "sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz",
|
||||
"integrity": "sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA=="
|
||||
},
|
||||
"@smithy/middleware-stack": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz",
|
||||
"integrity": "sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz",
|
||||
"integrity": "sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA=="
|
||||
},
|
||||
"@smithy/node-config-provider": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz",
|
||||
"integrity": "sha512-ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q=="
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.3.tgz",
|
||||
"integrity": "sha512-rxdpAZczzholz6CYZxtqDu/aKTxATD5DAUDVj7HoEulq+pDSQVWzbg0btZDlxeFfa6bb2b5tUvgdX5+k8jUqcg=="
|
||||
},
|
||||
"@smithy/node-http-handler": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz",
|
||||
"integrity": "sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ=="
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.1.tgz",
|
||||
"integrity": "sha512-L71NLyPeP450r2J/mfu1jMc//Z1YnqJt2eSNw7uhiItaONnBLDA68J5jgxq8+MBDsYnFwNAIc7dBG1ImiWBiwg=="
|
||||
},
|
||||
"@smithy/property-provider": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.0.tgz",
|
||||
"integrity": "sha512-Tj3+oVhqdZgemjCiWjFlADfhvLF4C/uKDuKo7/tlEsRQ9+3emCreR2xndj970QSRSsiCEU8hZW3/8JQu+n5w4Q=="
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.3.tgz",
|
||||
"integrity": "sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g=="
|
||||
},
|
||||
"@smithy/protocol-http": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.0.tgz",
|
||||
"integrity": "sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ=="
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.3.tgz",
|
||||
"integrity": "sha512-x5jmrCWwQlx+Zv4jAtc33ijJ+vqqYN+c/ZkrnpvEe/uDas7AT7A/4Rc2CdfxgWv4WFGmEqODIrrUToPN6DDkGw=="
|
||||
},
|
||||
"@smithy/querystring-builder": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz",
|
||||
"integrity": "sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz",
|
||||
"integrity": "sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw=="
|
||||
},
|
||||
"@smithy/querystring-parser": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz",
|
||||
"integrity": "sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz",
|
||||
"integrity": "sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ=="
|
||||
},
|
||||
"@smithy/service-error-classification": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz",
|
||||
"integrity": "sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz",
|
||||
"integrity": "sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ=="
|
||||
},
|
||||
"@smithy/shared-ini-file-loader": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz",
|
||||
"integrity": "sha512-dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg=="
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.3.tgz",
|
||||
"integrity": "sha512-Z8Y3+08vgoDgl4HENqNnnzSISAaGrF2RoKupoC47u2wiMp+Z8P/8mDh1CL8+8ujfi2U5naNvopSBmP/BUj8b5w=="
|
||||
},
|
||||
"@smithy/signature-v4": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.0.0.tgz",
|
||||
"integrity": "sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA=="
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.1.2.tgz",
|
||||
"integrity": "sha512-3BcPylEsYtD0esM4Hoyml/+s7WP2LFhcM3J2AGdcL2vx9O60TtfpDOL72gjb4lU8NeRPeKAwR77YNyyGvMbuEA=="
|
||||
},
|
||||
"@smithy/smithy-client": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.1.tgz",
|
||||
"integrity": "sha512-tj4Ku7MpzZR8cmVuPcSbrLFVxmptWktmJMwST/uIEq4sarabEdF8CbmQdYB7uJ/X51Qq2EYwnRsoS7hdR4B7rA=="
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.5.tgz",
|
||||
"integrity": "sha512-x9bL9Mx2CT2P1OiUlHM+ZNpbVU6TgT32f9CmTRzqIHA7M4vYrROCWEoC3o4xHNJASoGd4Opos3cXYPgh+/m4Ww=="
|
||||
},
|
||||
"@smithy/types": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.0.0.tgz",
|
||||
"integrity": "sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw=="
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.3.0.tgz",
|
||||
"integrity": "sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA=="
|
||||
},
|
||||
"@smithy/url-parser": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.0.tgz",
|
||||
"integrity": "sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.3.tgz",
|
||||
"integrity": "sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A=="
|
||||
},
|
||||
"@smithy/util-base64": {
|
||||
"version": "3.0.0",
|
||||
@@ -347,19 +336,19 @@
|
||||
"integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ=="
|
||||
},
|
||||
"@smithy/util-defaults-mode-browser": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.3.tgz",
|
||||
"integrity": "sha512-3DFON2bvXJAukJe+qFgPV/rorG7ZD3m4gjCXHD1V5z/tgKQp5MCTCLntrd686tX6tj8Uli3lefWXJudNg5WmCA=="
|
||||
"version": "3.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.7.tgz",
|
||||
"integrity": "sha512-Q2txLyvQyGfmjsaDbVV7Sg8psefpFcrnlGapDzXGFRPFKRBeEg6OvFK8FljqjeHSaCZ6/UuzQExUPqBR/2qlDA=="
|
||||
},
|
||||
"@smithy/util-defaults-mode-node": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.3.tgz",
|
||||
"integrity": "sha512-D0b8GJXecT00baoSQ3Iieu3k3mZ7GY8w1zmg8pdogYrGvWJeLcIclqk2gbkG4K0DaBGWrO6v6r20iwIFfDYrmA=="
|
||||
"version": "3.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.7.tgz",
|
||||
"integrity": "sha512-F4Qcj1fG6MGi2BSWCslfsMSwllws/WzYONBGtLybyY+halAcXdWhcew+mej8M5SKd5hqPYp4f7b+ABQEaeytgg=="
|
||||
},
|
||||
"@smithy/util-endpoints": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.1.tgz",
|
||||
"integrity": "sha512-ZRT0VCOnKlVohfoABMc8lWeQo/JEFuPWctfNRXgTHbyOVssMOLYFUNWukxxiHRGVAhV+n3c0kPW+zUqckjVPEA=="
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.4.tgz",
|
||||
"integrity": "sha512-ZAtNf+vXAsgzgRutDDiklU09ZzZiiV/nATyqde4Um4priTmasDH+eLpp3tspL0hS2dEootyFMhu1Y6Y+tzpWBQ=="
|
||||
},
|
||||
"@smithy/util-hex-encoding": {
|
||||
"version": "3.0.0",
|
||||
@@ -367,19 +356,19 @@
|
||||
"integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ=="
|
||||
},
|
||||
"@smithy/util-middleware": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.0.tgz",
|
||||
"integrity": "sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.3.tgz",
|
||||
"integrity": "sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw=="
|
||||
},
|
||||
"@smithy/util-retry": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.0.tgz",
|
||||
"integrity": "sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g=="
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.3.tgz",
|
||||
"integrity": "sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w=="
|
||||
},
|
||||
"@smithy/util-stream": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.1.tgz",
|
||||
"integrity": "sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA=="
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.5.tgz",
|
||||
"integrity": "sha512-xC3L5PKMAT/Bh8fmHNXP9sdQ4+4aKVUU3EEJ2CF/lLk7R+wtMJM+v/1B4en7jO++Wa5spGzFDBCl0QxgbUc5Ug=="
|
||||
},
|
||||
"@smithy/util-uri-escape": {
|
||||
"version": "3.0.0",
|
||||
@@ -392,9 +381,9 @@
|
||||
"integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "20.14.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
|
||||
"integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q=="
|
||||
"version": "20.14.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz",
|
||||
"integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg=="
|
||||
},
|
||||
"@types/webidl-conversions": {
|
||||
"version": "7.0.3",
|
||||
|
||||
28
packages/webapp/.npm/package/npm-shrinkwrap.json
generated
28
packages/webapp/.npm/package/npm-shrinkwrap.json
generated
@@ -17,9 +17,9 @@
|
||||
"integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ=="
|
||||
},
|
||||
"@types/express-serve-static-core": {
|
||||
"version": "4.19.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz",
|
||||
"integrity": "sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg=="
|
||||
"version": "4.19.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
|
||||
"integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg=="
|
||||
},
|
||||
"@types/http-errors": {
|
||||
"version": "2.0.4",
|
||||
@@ -32,9 +32,9 @@
|
||||
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "20.14.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
|
||||
"integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q=="
|
||||
"version": "20.14.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz",
|
||||
"integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg=="
|
||||
},
|
||||
"@types/qs": {
|
||||
"version": "6.9.15",
|
||||
@@ -367,11 +367,6 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.20.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz",
|
||||
"integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw=="
|
||||
},
|
||||
"negotiator": {
|
||||
"version": "0.6.3",
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
|
||||
@@ -383,9 +378,9 @@
|
||||
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="
|
||||
},
|
||||
"object-inspect": {
|
||||
"version": "1.13.1",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
|
||||
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g=="
|
||||
},
|
||||
"on-finished": {
|
||||
"version": "2.4.1",
|
||||
@@ -422,11 +417,6 @@
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
||||
},
|
||||
"posix": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/posix/-/posix-4.2.0.tgz",
|
||||
"integrity": "sha512-JbxfT0Fxy/SG10LSkKX1C75iULYfAJqYCwwmM6J0+zh2vl/bE51CqaqvSpdZWg7YAwiuDIoBI6j7in+n3GgXSw=="
|
||||
},
|
||||
"promise-polyfill": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz",
|
||||
|
||||
@@ -1274,6 +1274,11 @@ class Target {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (await resource.hasPendingErrors?.()) {
|
||||
await resource.reportPendingErrors();
|
||||
break;
|
||||
}
|
||||
|
||||
if (['js', 'css'].includes(resource.type)) {
|
||||
if (resource.type === 'css' && ! isWeb) {
|
||||
// XXX might be nice to throw an error here, but then we'd
|
||||
@@ -3285,17 +3290,13 @@ async function bundle({
|
||||
buildMode: buildOptions.buildMode
|
||||
});
|
||||
|
||||
try {
|
||||
await client.make({
|
||||
packages: [app],
|
||||
minifyMode: minifyMode,
|
||||
minifiers: options.minifiers || [],
|
||||
addCacheBusters: true,
|
||||
onJsOutputFiles,
|
||||
});
|
||||
} catch (e) {
|
||||
// it's fine to fail here, but we don't want to propagate the error
|
||||
}
|
||||
await client.make({
|
||||
packages: [app],
|
||||
minifyMode: minifyMode,
|
||||
minifiers: options.minifiers || [],
|
||||
addCacheBusters: true,
|
||||
onJsOutputFiles,
|
||||
});
|
||||
|
||||
return client;
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@ import { pluginVersionsFromStarManifest } from '../cordova/index.js';
|
||||
import { closeAllWatchers } from "../fs/safe-watcher";
|
||||
import { eachline } from "../utils/eachline";
|
||||
import { loadIsopackage } from '../tool-env/isopackets.js';
|
||||
import { once , EventEmitter, on } from "events"
|
||||
|
||||
// Parse out s as if it were a bash command line.
|
||||
var bashParse = function (s) {
|
||||
if (s.search("\"") !== -1 || s.search("'") !== -1) {
|
||||
@@ -405,47 +405,40 @@ Object.assign(AppRunner.prototype, {
|
||||
|
||||
self.isRunning = true;
|
||||
global.asyncLocalStorage.run({}, () =>
|
||||
self._runApp().catch((e) => self._resolvePromise("start", e))
|
||||
self._runApp()
|
||||
.catch((e) => {
|
||||
// There was an unexpected error when building the app
|
||||
// This is not recoverable, so we turn it into an unhandled exception
|
||||
// and crash.
|
||||
setTimeout(() => {
|
||||
throw e;
|
||||
});
|
||||
})
|
||||
);
|
||||
await self.startPromise;
|
||||
self.startPromise = null;
|
||||
},
|
||||
|
||||
_findCachedEE: function (name) {
|
||||
if (!this._promiseResolvers[name]) {
|
||||
this._promiseResolvers[name] = new EventEmitter();
|
||||
}
|
||||
return this._promiseResolvers[name];
|
||||
// Creates a promise that can be resolved later by calling _resolvePromise
|
||||
_makePromise (name) {
|
||||
return new Promise((resolve) => {
|
||||
this._promiseResolvers[name] = resolve;
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @return {Promise<[any]>}
|
||||
* @private
|
||||
*/
|
||||
_makePromise: function (name) {
|
||||
var self = this;
|
||||
const ee = self._findCachedEE(name);
|
||||
return once(ee, name);
|
||||
},
|
||||
|
||||
_resolvePromise: function (name, value) {
|
||||
const ee = this._promiseResolvers[name];
|
||||
if (ee) {
|
||||
ee.emit(name, value);
|
||||
// Resolves a promise already created by _makePromise
|
||||
_resolvePromise (name, value) {
|
||||
const resolve = this._promiseResolvers[name];
|
||||
if (resolve) {
|
||||
this._promiseResolvers[name] = null;
|
||||
}
|
||||
if (value instanceof Error) {
|
||||
throw value;
|
||||
resolve(value);
|
||||
}
|
||||
},
|
||||
|
||||
_cleanUpPromises: function () {
|
||||
if (this._promiseResolvers) {
|
||||
_.each(this._promiseResolvers, (ee,name) => {
|
||||
if (ee) {
|
||||
ee.emit(name, null);
|
||||
}
|
||||
Object.values(this._promiseResolvers).forEach(resolve => {
|
||||
resolve && resolve();
|
||||
});
|
||||
this._promiseResolvers = null;
|
||||
}
|
||||
@@ -469,8 +462,10 @@ Object.assign(AppRunner.prototype, {
|
||||
|
||||
// The existence of this promise makes the fiber break out of its loop.
|
||||
self.exitPromise = self._makePromise("exit");
|
||||
|
||||
self._resolvePromise("run", { outcome: 'stopped' });
|
||||
self._resolvePromise("watch");
|
||||
|
||||
if (self._beforeStartPromise) {
|
||||
// If we stopped before mongod started (eg, due to mongod startup
|
||||
// failure), unblock the runner fiber from waiting for mongod to start.
|
||||
@@ -515,6 +510,7 @@ Object.assign(AppRunner.prototype, {
|
||||
// it even if we refreshed previously, since that might have been a
|
||||
// little while ago.
|
||||
catalog.triedToRefreshRecently = false;
|
||||
|
||||
// If this isn't the first time we've run, we need to reset the project
|
||||
// context since everything we have cached may have changed.
|
||||
// XXX We can try to be a little less conservative here:
|
||||
@@ -535,7 +531,9 @@ Object.assign(AppRunner.prototype, {
|
||||
// shown from the previous solution.
|
||||
preservePackageMap: true
|
||||
});
|
||||
var messages = await buildmessage.capture(() => self.projectContext.readProjectMetadata());
|
||||
var messages = await buildmessage.capture(() => {
|
||||
return self.projectContext.readProjectMetadata()
|
||||
});
|
||||
if (messages.hasMessages()) {
|
||||
return {
|
||||
runResult: {
|
||||
@@ -754,11 +752,12 @@ Object.assign(AppRunner.prototype, {
|
||||
});
|
||||
|
||||
if (options.firstRun && self._beforeStartPromise) {
|
||||
var [stopped] = await self._beforeStartPromise;
|
||||
if (stopped) {
|
||||
return true;
|
||||
}
|
||||
var stopped = await self._beforeStartPromise;
|
||||
if (stopped) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
await appProcess.start();
|
||||
|
||||
function maybePrintLintWarnings(bundleResult) {
|
||||
@@ -811,7 +810,7 @@ Object.assign(AppRunner.prototype, {
|
||||
}
|
||||
|
||||
var setupClientWatcher = function () {
|
||||
clientWatcher && clientWatcher.stop();
|
||||
clientWatcher && clientWatcher.stop();
|
||||
clientWatcher = new watch.Watcher({
|
||||
watchSet: bundleResult.clientWatchSet,
|
||||
onChange: function () {
|
||||
@@ -891,7 +890,7 @@ Object.assign(AppRunner.prototype, {
|
||||
|
||||
// Wait for either the process to exit, or (if watchForChanges) a
|
||||
// source file to change. Or, for stop() to be called.
|
||||
var [ret] = await runPromise;
|
||||
var ret = await runPromise;
|
||||
try {
|
||||
while (ret.outcome === 'changed-refreshable') {
|
||||
if (! canRefreshClient) {
|
||||
@@ -922,7 +921,7 @@ Object.assign(AppRunner.prototype, {
|
||||
if (postStartupResult) return postStartupResult;
|
||||
|
||||
// Wait until another file changes.
|
||||
[ret] = await oldPromise;
|
||||
ret = await oldPromise;
|
||||
}
|
||||
} finally {
|
||||
self.runPromise = null;
|
||||
@@ -937,8 +936,8 @@ Object.assign(AppRunner.prototype, {
|
||||
}
|
||||
await appProcess.stop();
|
||||
|
||||
serverWatcher && serverWatcher.stop();
|
||||
clientWatcher && clientWatcher.stop();
|
||||
serverWatcher && serverWatcher.stop();
|
||||
clientWatcher && clientWatcher.stop();
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -1009,7 +1008,7 @@ Object.assign(AppRunner.prototype, {
|
||||
}
|
||||
|
||||
if (self.watchForChanges) {
|
||||
self.watchPromise = self._makePromise("watch");
|
||||
self.watchPromise = self._makePromise("watch");
|
||||
|
||||
if (!runResult.watchSet) {
|
||||
throw Error("watching for changes with no watchSet?");
|
||||
|
||||
@@ -40,7 +40,9 @@ export default class PuppeteerClient extends Client {
|
||||
// Note for Travis and CircleCI to run sandbox must be turned off.
|
||||
// From a security perspective this is not ideal, in the future would be worthwhile
|
||||
// to configure to include only for CI based setups
|
||||
this.browser = await this.npmPackageExports.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] });
|
||||
this.browser = await this.npmPackageExports.launch({
|
||||
args: ["--no-sandbox", "--disable-setuid-sandbox"],
|
||||
});
|
||||
this.page = await this.browser.newPage();
|
||||
this.page.goto(`http://${this.host}:${this.port}`);
|
||||
}
|
||||
|
||||
@@ -136,6 +136,14 @@ export default class Matcher {
|
||||
}
|
||||
}
|
||||
|
||||
async awaitMatchPromise() {
|
||||
if (!this.matchPromise) {
|
||||
return;
|
||||
}
|
||||
await this.matchPromise;
|
||||
this.matchPattern = null;
|
||||
}
|
||||
|
||||
async _tryMatch() {
|
||||
const mp = this.matchPromise;
|
||||
if (! mp) {
|
||||
|
||||
@@ -123,11 +123,14 @@ export default class Run {
|
||||
}
|
||||
|
||||
_endMatchers() {
|
||||
this.matcherEndPromise =
|
||||
this.matcherEndPromise || Promise.all([
|
||||
this.stdoutMatcher.endAsync(),
|
||||
this.stderrMatcher.endAsync()
|
||||
]);
|
||||
const self = this;
|
||||
async function endFunctions() {
|
||||
await self.stdoutMatcher.awaitMatchPromise();
|
||||
await self.stdoutMatcher.endAsync();
|
||||
await self.stderrMatcher.awaitMatchPromise();
|
||||
await self.stderrMatcher.endAsync();
|
||||
}
|
||||
this.matcherEndPromise = this.matcherEndPromise || endFunctions();
|
||||
return this.matcherEndPromise;
|
||||
}
|
||||
|
||||
|
||||
@@ -815,7 +815,7 @@ insensitive duplicates before updates.
|
||||
|
||||
<ApiBox name="Accounts.setUsername" />
|
||||
|
||||
<ApiBox name="Accounts.addEmail" />
|
||||
<ApiBox name="Accounts.addEmailAsync" />
|
||||
|
||||
By default, an email address is added with `{ verified: false }`. Use
|
||||
[`Accounts.sendVerificationEmail`](#Accounts-sendVerificationEmail) to send an
|
||||
|
||||
@@ -394,6 +394,11 @@ you want to process the method's result as soon as it arrives from the server,
|
||||
even if the method's writes are not available yet, you can specify an
|
||||
`onResultReceived` callback to [`Meteor.apply`](#Meteor-apply).
|
||||
|
||||
::: warning
|
||||
Use `Meteor.call` only to call methods that do not have a stub, or have a sync stub. If you want to call methods with an async stub, `Meteor.callAsync` can be used with any method.
|
||||
:::
|
||||
|
||||
|
||||
<ApiBox name="Meteor.callAsync" />
|
||||
|
||||
`Meteor.callAsync` is just like `Meteor.call`, except that it'll return a promise that you need to solve to get the result.
|
||||
@@ -404,6 +409,10 @@ even if the method's writes are not available yet, you can specify an
|
||||
passed as an array rather than directly as arguments, and you can specify
|
||||
options about how the client executes the method.
|
||||
|
||||
::: warning
|
||||
Use `Meteor.apply` only to call methods that do not have a stub, or have a sync stub. If you want to call methods with an async stub, `Meteor.applyAsync` can be used with any method.
|
||||
:::
|
||||
|
||||
<ApiBox name="Meteor.applyAsync" />
|
||||
|
||||
`Meteor.applyAsync` is just like `Meteor.apply`, except it is an async function, and it will consider that the stub is async.
|
||||
|
||||
@@ -71,5 +71,29 @@ async function someFunction() {
|
||||
|
||||
```
|
||||
|
||||
## Accounts.addEmail
|
||||
|
||||
It is no longer available, you should use `Accounts.addEmailAsync`.
|
||||
|
||||
```javascript
|
||||
import { Accounts } from "meteor/accounts-base";
|
||||
|
||||
// Before
|
||||
|
||||
Accounts.addEmail(
|
||||
"userId",
|
||||
"newEmail",
|
||||
false, // this param is optional
|
||||
);
|
||||
// After
|
||||
|
||||
await Accounts.addEmailAsync(
|
||||
"userId",
|
||||
"newEmail",
|
||||
false, // this param is optional
|
||||
);
|
||||
|
||||
```
|
||||
|
||||
|
||||
For a full list of changes check the [changelog](https://v3-docs.meteor.com/history.html#changelog) for Meteor v3
|
||||
|
||||
@@ -1,29 +1,26 @@
|
||||
# Meteor.call x Meteor.callAsync
|
||||
# Can I still use Meteor.call?
|
||||
|
||||
You can, but we recommend you use it only to call methods that do not have a method stub, or when the method stub is synchronous.
|
||||
|
||||
In fact, we log a warning message if you use `Meteor.call` to call a method with an async method stub since it can lead to unexpected behavior.
|
||||
|
||||
::: tip
|
||||
`Meteor.callAsync` is the standard for calling methods and supports any method, including those that have an async method stub.
|
||||
|
||||
It is recommened to use `Meteor.callAsync` instead of `Meteor.call` because of how our
|
||||
async API works. `Meteor.call` is still available but it is not recommended to use it, it
|
||||
can lead to unexpected behavior.
|
||||
Here is also important to remember what a stub is. A stub is a client-side simulation of the server-side method that runs immediately when the method is invoked, allowing the client to update its state optimistically before receiving the server's response. So, basically any Meteor method that is defined on the client is considered a stub.
|
||||
|
||||
Using `Meteor.callAsync` will make your code more predictable and easier to maintain.
|
||||
|
||||
:::
|
||||
# How to migrate from Meteor.call to Meteor.callAsync
|
||||
|
||||
Example of how to migrate from `Meteor.call` to `Meteor.callAsync`:
|
||||
|
||||
|
||||
::: code-group
|
||||
|
||||
|
||||
```js [v2-client.jsx]
|
||||
import { Meteor } from 'meteor/meteor'
|
||||
import { Meteor } from "meteor/meteor";
|
||||
|
||||
let data, error;
|
||||
|
||||
Meteor.call('getAllData', (err, res) => { // [!code highlight]
|
||||
Meteor.call("getAllData", (err, res) => {
|
||||
// [!code highlight]
|
||||
if (err) {
|
||||
error = err;
|
||||
} else {
|
||||
@@ -32,105 +29,67 @@ Meteor.call('getAllData', (err, res) => { // [!code highlight]
|
||||
});
|
||||
|
||||
// render data or error
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
```js [v2-server.js]
|
||||
import { Meteor } from 'meteor/meteor'
|
||||
import { Mongo } from 'meteor/mongo'
|
||||
import { Meteor } from "meteor/meteor";
|
||||
import { Mongo } from "meteor/mongo";
|
||||
|
||||
const MyCollection = new Mongo.Collection('myCollection');
|
||||
const MyCollection = new Mongo.Collection("myCollection");
|
||||
|
||||
Meteor.methods({
|
||||
getAllData() {
|
||||
return MyCollection.find().fetch(); // [!code highlight]
|
||||
}
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
```js [v3-client.jsx]
|
||||
import { Meteor } from 'meteor/meteor'
|
||||
import { Meteor } from "meteor/meteor";
|
||||
|
||||
try {
|
||||
const data = await Meteor.callAsync('getAllData'); // [!code highlight]
|
||||
const data = await Meteor.callAsync("getAllData"); // [!code highlight]
|
||||
// render data
|
||||
} catch (error) {
|
||||
// render error
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
```js [v3-server.js]
|
||||
import { Meteor } from 'meteor/meteor'
|
||||
import { Mongo } from 'meteor/mongo'
|
||||
import { Meteor } from "meteor/meteor";
|
||||
import { Mongo } from "meteor/mongo";
|
||||
|
||||
const MyCollection = new Mongo.Collection('myCollection');
|
||||
const MyCollection = new Mongo.Collection("myCollection");
|
||||
|
||||
Meteor.methods({
|
||||
async getAllData() {
|
||||
return await MyCollection.find().fetchAsync(); // [!code highlight]
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Rules of using `Meteor.callAsync` & `Meteor.call`
|
||||
# Considerations for Effective Use of Meteor.callAsync
|
||||
|
||||
::: tip
|
||||
It is not recommended to use concurrent calls.
|
||||
Use `await` for your `Meteor.callAsync`.
|
||||
:::
|
||||
When we introduced [async Method stubs](https://guide.meteor.com/2.8-migration.html#callasync) the implementation brought some [limitations](https://github.com/zodern/fix-async-stubs#:~:text=Specifically%2C%20while%20an,used%20in%20stubs).
|
||||
|
||||
here are a few examples of cases where you should use `Meteor.callAsync` instead of `Meteor.call`:
|
||||
Those limitations were addressed in this [package](https://github.com/zodern/fix-async-stubs/) created by [Zodern](https://github.com/zodern), and later, we moved the solution to the [core](https://github.com/meteor/meteor/blob/ecdfd3c610fbe5334eee024702fe0c354944f58b/packages/ddp-client/client/queueStubsHelpers.js).
|
||||
|
||||
```js
|
||||
import { Meteor } from 'meteor/meteor'
|
||||
But there is no perfect solution to the problems with async stubs.
|
||||
|
||||
Meteor.call("someMethod", (err, res) => { // [!code error] This is not ok
|
||||
if (err) {
|
||||
console.log(err);
|
||||
} else {
|
||||
console.log(res);
|
||||
}
|
||||
});
|
||||
To ensure other code will not run while an async stub is running, async stubs can not use these API's:
|
||||
|
||||
- fetch/XMLHttpRequest
|
||||
- setTimeout or setImmediate
|
||||
- indexedDB
|
||||
- web workers
|
||||
- any other async web api's that wait on macrotasks
|
||||
|
||||
Meteor.callAsync('someMethod') // [!code error] This is not ok
|
||||
.then(data => console.log(data))
|
||||
.catch(err => console.log(err));
|
||||
|
||||
// it is not recommended to use concurrent calls
|
||||
|
||||
Promise.all([ // [!code error] This is not ok
|
||||
Meteor.callAsync('someMethod'),
|
||||
Meteor.callAsync('someMethod')
|
||||
]).then(([data1, data2]) => {
|
||||
console.log(data1, data2);
|
||||
});
|
||||
|
||||
// Ok section
|
||||
|
||||
Meteor.call("someMethod", (err, res) => { // [!code ++]
|
||||
if (err) {
|
||||
console.log(err);
|
||||
} else {
|
||||
console.log(res);
|
||||
}
|
||||
});
|
||||
|
||||
await Meteor.callAsync('someMethod') // this is ok // [!code ++]
|
||||
|
||||
// this is also ok
|
||||
Meteor.callAsync('someMethod').then(data => { // [!code ++]
|
||||
console.log(data);
|
||||
Meteor.callAsync('someMethod').then(data2 => {
|
||||
console.log(data2);
|
||||
});
|
||||
});
|
||||
Using these API's could allow other code to run before the async stub finishes.
|
||||
|
||||
If one of these API's are used, a warning will be shown in the console:
|
||||
|
||||
```
|
||||
Method stub (<method name>) took too long and could cause unexpected problems. Learn more at https://v3-migration-docs.meteor.com/breaking-changes/call-x-callAsync.html#what-are-the-limitations-of-call-meteor-callasync
|
||||
```
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"docs:dev": "vitepress dev",
|
||||
"docs:build": "vitepress build",
|
||||
"docs:preview": "vitepress preview"
|
||||
"docs:preview": "vitepress preview",
|
||||
"deploy:preview": "npm run docs:build && npm run docs:preview"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
Reference in New Issue
Block a user